1 // Copyright 2015-2021 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_RAII_HPP 9 #define VULKAN_RAII_HPP 10 11 #include <vulkan/vulkan.hpp> 12 13 #if !defined( VULKAN_HPP_RAII_NAMESPACE ) 14 # define VULKAN_HPP_RAII_NAMESPACE raii 15 #endif 16 17 namespace VULKAN_HPP_NAMESPACE 18 { 19 namespace VULKAN_HPP_RAII_NAMESPACE 20 { 21 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) && !defined( VULKAN_HPP_NO_EXCEPTIONS ) 22 23 template <class T, class U = T> exchange(T & obj,U && newValue)24 VULKAN_HPP_CONSTEXPR_14 VULKAN_HPP_INLINE T exchange( T & obj, U && newValue ) 25 { 26 # if ( 14 <= VULKAN_HPP_CPP_VERSION ) 27 return std::exchange<T>( obj, std::forward<U>( newValue ) ); 28 # else 29 T oldValue = std::move( obj ); 30 obj = std::forward<U>( newValue ); 31 return oldValue; 32 # endif 33 } 34 35 class ContextDispatcher : public DispatchLoaderBase 36 { 37 public: ContextDispatcher(PFN_vkGetInstanceProcAddr getProcAddr)38 ContextDispatcher( PFN_vkGetInstanceProcAddr getProcAddr ) 39 : vkGetInstanceProcAddr( getProcAddr ) 40 //=== VK_VERSION_1_0 === 41 , vkCreateInstance( PFN_vkCreateInstance( getProcAddr( NULL, "vkCreateInstance" ) ) ) 42 , vkEnumerateInstanceExtensionProperties( PFN_vkEnumerateInstanceExtensionProperties( 43 getProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) ) ) 44 , vkEnumerateInstanceLayerProperties( 45 PFN_vkEnumerateInstanceLayerProperties( getProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) ) ) 46 //=== VK_VERSION_1_1 === 47 , vkEnumerateInstanceVersion( 48 PFN_vkEnumerateInstanceVersion( getProcAddr( NULL, "vkEnumerateInstanceVersion" ) ) ) 49 {} 50 51 public: 52 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; 53 54 //=== VK_VERSION_1_0 === 55 PFN_vkCreateInstance vkCreateInstance = 0; 56 PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0; 57 PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0; 58 59 //=== VK_VERSION_1_1 === 60 PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0; 61 }; 62 63 class InstanceDispatcher : public DispatchLoaderBase 64 { 65 public: InstanceDispatcher(PFN_vkGetInstanceProcAddr getProcAddr)66 InstanceDispatcher( PFN_vkGetInstanceProcAddr getProcAddr ) : vkGetInstanceProcAddr( getProcAddr ) {} 67 InstanceDispatcher(std::nullptr_t)68 InstanceDispatcher( std::nullptr_t ) : DispatchLoaderBase( nullptr ) {} 69 init(VkInstance instance)70 void init( VkInstance instance ) 71 { 72 //=== VK_VERSION_1_0 === 73 vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) ); 74 vkEnumeratePhysicalDevices = 75 PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) ); 76 vkGetPhysicalDeviceFeatures = 77 PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) ); 78 vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( 79 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) ); 80 vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( 81 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) ); 82 vkGetPhysicalDeviceProperties = 83 PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) ); 84 vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( 85 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) ); 86 vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( 87 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) ); 88 vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) ); 89 vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) ); 90 vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( 91 vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) ); 92 vkEnumerateDeviceLayerProperties = 93 PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) ); 94 vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( 95 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) ); 96 97 //=== VK_VERSION_1_1 === 98 vkEnumeratePhysicalDeviceGroups = 99 PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) ); 100 vkGetPhysicalDeviceFeatures2 = 101 PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) ); 102 vkGetPhysicalDeviceProperties2 = 103 PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) ); 104 vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( 105 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) ); 106 vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( 107 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) ); 108 vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( 109 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) ); 110 vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( 111 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) ); 112 vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( 113 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) ); 114 vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( 115 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) ); 116 vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( 117 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) ); 118 vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( 119 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) ); 120 121 //=== VK_EXT_acquire_drm_display === 122 vkAcquireDrmDisplayEXT = 123 PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) ); 124 vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) ); 125 126 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) 127 //=== VK_EXT_acquire_xlib_display === 128 vkAcquireXlibDisplayEXT = 129 PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) ); 130 vkGetRandROutputDisplayEXT = 131 PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) ); 132 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 133 134 //=== VK_EXT_calibrated_timestamps === 135 vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( 136 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) ); 137 138 //=== VK_EXT_debug_report === 139 vkCreateDebugReportCallbackEXT = 140 PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) ); 141 vkDestroyDebugReportCallbackEXT = 142 PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) ); 143 vkDebugReportMessageEXT = 144 PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) ); 145 146 //=== VK_EXT_debug_utils === 147 vkCreateDebugUtilsMessengerEXT = 148 PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) ); 149 vkDestroyDebugUtilsMessengerEXT = 150 PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) ); 151 vkSubmitDebugUtilsMessageEXT = 152 PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) ); 153 154 //=== VK_EXT_direct_mode_display === 155 vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) ); 156 157 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 158 //=== VK_EXT_directfb_surface === 159 vkCreateDirectFBSurfaceEXT = 160 PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) ); 161 vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( 162 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) ); 163 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 164 165 //=== VK_EXT_display_surface_counter === 166 vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( 167 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) ); 168 169 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 170 //=== VK_EXT_full_screen_exclusive === 171 vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( 172 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) ); 173 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 174 175 //=== VK_EXT_headless_surface === 176 vkCreateHeadlessSurfaceEXT = 177 PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) ); 178 179 # if defined( VK_USE_PLATFORM_METAL_EXT ) 180 //=== VK_EXT_metal_surface === 181 vkCreateMetalSurfaceEXT = 182 PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) ); 183 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 184 185 //=== VK_EXT_sample_locations === 186 vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( 187 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) ); 188 189 //=== VK_EXT_tooling_info === 190 vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( 191 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) ); 192 193 # if defined( VK_USE_PLATFORM_FUCHSIA ) 194 //=== VK_FUCHSIA_imagepipe_surface === 195 vkCreateImagePipeSurfaceFUCHSIA = 196 PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) ); 197 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 198 199 # if defined( VK_USE_PLATFORM_GGP ) 200 //=== VK_GGP_stream_descriptor_surface === 201 vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( 202 vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) ); 203 # endif /*VK_USE_PLATFORM_GGP*/ 204 205 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 206 //=== VK_KHR_android_surface === 207 vkCreateAndroidSurfaceKHR = 208 PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) ); 209 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 210 211 //=== VK_KHR_device_group === 212 vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( 213 vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) ); 214 215 //=== VK_KHR_device_group_creation === 216 vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( 217 vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) ); 218 if ( !vkEnumeratePhysicalDeviceGroups ) 219 vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR; 220 221 //=== VK_KHR_display === 222 vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( 223 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) ); 224 vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( 225 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) ); 226 vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( 227 vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) ); 228 vkGetDisplayModePropertiesKHR = 229 PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) ); 230 vkCreateDisplayModeKHR = 231 PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) ); 232 vkGetDisplayPlaneCapabilitiesKHR = 233 PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) ); 234 vkCreateDisplayPlaneSurfaceKHR = 235 PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) ); 236 237 //=== VK_KHR_external_fence_capabilities === 238 vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( 239 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) ); 240 if ( !vkGetPhysicalDeviceExternalFenceProperties ) 241 vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR; 242 243 //=== VK_KHR_external_memory_capabilities === 244 vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( 245 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) ); 246 if ( !vkGetPhysicalDeviceExternalBufferProperties ) 247 vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR; 248 249 //=== VK_KHR_external_semaphore_capabilities === 250 vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( 251 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) ); 252 if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) 253 vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; 254 255 //=== VK_KHR_fragment_shading_rate === 256 vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( 257 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) ); 258 259 //=== VK_KHR_get_display_properties2 === 260 vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( 261 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) ); 262 vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( 263 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) ); 264 vkGetDisplayModeProperties2KHR = 265 PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) ); 266 vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( 267 vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) ); 268 269 //=== VK_KHR_get_physical_device_properties2 === 270 vkGetPhysicalDeviceFeatures2KHR = 271 PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) ); 272 if ( !vkGetPhysicalDeviceFeatures2 ) 273 vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR; 274 vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( 275 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) ); 276 if ( !vkGetPhysicalDeviceProperties2 ) 277 vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR; 278 vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( 279 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) ); 280 if ( !vkGetPhysicalDeviceFormatProperties2 ) 281 vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR; 282 vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( 283 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) ); 284 if ( !vkGetPhysicalDeviceImageFormatProperties2 ) 285 vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR; 286 vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( 287 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) ); 288 if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) 289 vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR; 290 vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( 291 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) ); 292 if ( !vkGetPhysicalDeviceMemoryProperties2 ) 293 vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR; 294 vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( 295 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) ); 296 if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) 297 vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR; 298 299 //=== VK_KHR_get_surface_capabilities2 === 300 vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( 301 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) ); 302 vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( 303 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) ); 304 305 //=== VK_KHR_performance_query === 306 vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 307 PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( 308 vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) ); 309 vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 310 PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( 311 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) ); 312 313 //=== VK_KHR_surface === 314 vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) ); 315 vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( 316 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) ); 317 vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( 318 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) ); 319 vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( 320 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) ); 321 vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( 322 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) ); 323 324 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 325 //=== VK_KHR_video_queue === 326 vkGetPhysicalDeviceVideoCapabilitiesKHR = PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( 327 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) ); 328 vkGetPhysicalDeviceVideoFormatPropertiesKHR = PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( 329 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) ); 330 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 331 332 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 333 //=== VK_KHR_wayland_surface === 334 vkCreateWaylandSurfaceKHR = 335 PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) ); 336 vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( 337 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) ); 338 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 339 340 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 341 //=== VK_KHR_win32_surface === 342 vkCreateWin32SurfaceKHR = 343 PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) ); 344 vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( 345 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) ); 346 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 347 348 # if defined( VK_USE_PLATFORM_XCB_KHR ) 349 //=== VK_KHR_xcb_surface === 350 vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) ); 351 vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( 352 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) ); 353 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 354 355 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 356 //=== VK_KHR_xlib_surface === 357 vkCreateXlibSurfaceKHR = 358 PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) ); 359 vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( 360 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) ); 361 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 362 363 # if defined( VK_USE_PLATFORM_IOS_MVK ) 364 //=== VK_MVK_ios_surface === 365 vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) ); 366 # endif /*VK_USE_PLATFORM_IOS_MVK*/ 367 368 # if defined( VK_USE_PLATFORM_MACOS_MVK ) 369 //=== VK_MVK_macos_surface === 370 vkCreateMacOSSurfaceMVK = 371 PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) ); 372 # endif /*VK_USE_PLATFORM_MACOS_MVK*/ 373 374 # if defined( VK_USE_PLATFORM_VI_NN ) 375 //=== VK_NN_vi_surface === 376 vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) ); 377 # endif /*VK_USE_PLATFORM_VI_NN*/ 378 379 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 380 //=== VK_NV_acquire_winrt_display === 381 vkAcquireWinrtDisplayNV = 382 PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) ); 383 vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) ); 384 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 385 386 //=== VK_NV_cooperative_matrix === 387 vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( 388 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) ); 389 390 //=== VK_NV_coverage_reduction_mode === 391 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 392 PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( 393 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) ); 394 395 //=== VK_NV_external_memory_capabilities === 396 vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( 397 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) ); 398 399 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 400 //=== VK_QNX_screen_surface === 401 vkCreateScreenSurfaceQNX = 402 PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) ); 403 vkGetPhysicalDeviceScreenPresentationSupportQNX = PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( 404 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) ); 405 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 406 407 vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) ); 408 } 409 410 public: 411 //=== VK_VERSION_1_0 === 412 PFN_vkDestroyInstance vkDestroyInstance = 0; 413 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0; 414 PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0; 415 PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0; 416 PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0; 417 PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0; 418 PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0; 419 PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0; 420 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; 421 PFN_vkCreateDevice vkCreateDevice = 0; 422 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0; 423 PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0; 424 PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0; 425 426 //=== VK_VERSION_1_1 === 427 PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0; 428 PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0; 429 PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0; 430 PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0; 431 PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0; 432 PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0; 433 PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0; 434 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0; 435 PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0; 436 PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0; 437 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0; 438 439 //=== VK_EXT_acquire_drm_display === 440 PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0; 441 PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0; 442 443 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) 444 //=== VK_EXT_acquire_xlib_display === 445 PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0; 446 PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0; 447 # else 448 PFN_dummy vkAcquireXlibDisplayEXT_placeholder = 0; 449 PFN_dummy vkGetRandROutputDisplayEXT_placeholder = 0; 450 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 451 452 //=== VK_EXT_calibrated_timestamps === 453 PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0; 454 455 //=== VK_EXT_debug_report === 456 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0; 457 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0; 458 PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0; 459 460 //=== VK_EXT_debug_utils === 461 PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0; 462 PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0; 463 PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0; 464 465 //=== VK_EXT_direct_mode_display === 466 PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0; 467 468 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 469 //=== VK_EXT_directfb_surface === 470 PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0; 471 PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0; 472 # else 473 PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder = 0; 474 PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0; 475 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 476 477 //=== VK_EXT_display_surface_counter === 478 PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0; 479 480 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 481 //=== VK_EXT_full_screen_exclusive === 482 PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0; 483 # else 484 PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder = 0; 485 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 486 487 //=== VK_EXT_headless_surface === 488 PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0; 489 490 # if defined( VK_USE_PLATFORM_METAL_EXT ) 491 //=== VK_EXT_metal_surface === 492 PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0; 493 # else 494 PFN_dummy vkCreateMetalSurfaceEXT_placeholder = 0; 495 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 496 497 //=== VK_EXT_sample_locations === 498 PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0; 499 500 //=== VK_EXT_tooling_info === 501 PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0; 502 503 # if defined( VK_USE_PLATFORM_FUCHSIA ) 504 //=== VK_FUCHSIA_imagepipe_surface === 505 PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0; 506 # else 507 PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder = 0; 508 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 509 510 # if defined( VK_USE_PLATFORM_GGP ) 511 //=== VK_GGP_stream_descriptor_surface === 512 PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0; 513 # else 514 PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder = 0; 515 # endif /*VK_USE_PLATFORM_GGP*/ 516 517 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 518 //=== VK_KHR_android_surface === 519 PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0; 520 # else 521 PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0; 522 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 523 524 //=== VK_KHR_device_group === 525 PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0; 526 527 //=== VK_KHR_device_group_creation === 528 PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0; 529 530 //=== VK_KHR_display === 531 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0; 532 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0; 533 PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0; 534 PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0; 535 PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0; 536 PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0; 537 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0; 538 539 //=== VK_KHR_external_fence_capabilities === 540 PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0; 541 542 //=== VK_KHR_external_memory_capabilities === 543 PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0; 544 545 //=== VK_KHR_external_semaphore_capabilities === 546 PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0; 547 548 //=== VK_KHR_fragment_shading_rate === 549 PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0; 550 551 //=== VK_KHR_get_display_properties2 === 552 PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0; 553 PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0; 554 PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0; 555 PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0; 556 557 //=== VK_KHR_get_physical_device_properties2 === 558 PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0; 559 PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0; 560 PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0; 561 PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0; 562 PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0; 563 PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0; 564 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0; 565 566 //=== VK_KHR_get_surface_capabilities2 === 567 PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0; 568 PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0; 569 570 //=== VK_KHR_performance_query === 571 PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR 572 vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0; 573 PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR 574 vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0; 575 576 //=== VK_KHR_surface === 577 PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0; 578 PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0; 579 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0; 580 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0; 581 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0; 582 583 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 584 //=== VK_KHR_video_queue === 585 PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0; 586 PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0; 587 # else 588 PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder = 0; 589 PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder = 0; 590 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 591 592 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 593 //=== VK_KHR_wayland_surface === 594 PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0; 595 PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0; 596 # else 597 PFN_dummy vkCreateWaylandSurfaceKHR_placeholder = 0; 598 PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder = 0; 599 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 600 601 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 602 //=== VK_KHR_win32_surface === 603 PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0; 604 PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0; 605 # else 606 PFN_dummy vkCreateWin32SurfaceKHR_placeholder = 0; 607 PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0; 608 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 609 610 # if defined( VK_USE_PLATFORM_XCB_KHR ) 611 //=== VK_KHR_xcb_surface === 612 PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0; 613 PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0; 614 # else 615 PFN_dummy vkCreateXcbSurfaceKHR_placeholder = 0; 616 PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder = 0; 617 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 618 619 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 620 //=== VK_KHR_xlib_surface === 621 PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0; 622 PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0; 623 # else 624 PFN_dummy vkCreateXlibSurfaceKHR_placeholder = 0; 625 PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder = 0; 626 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 627 628 # if defined( VK_USE_PLATFORM_IOS_MVK ) 629 //=== VK_MVK_ios_surface === 630 PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0; 631 # else 632 PFN_dummy vkCreateIOSSurfaceMVK_placeholder = 0; 633 # endif /*VK_USE_PLATFORM_IOS_MVK*/ 634 635 # if defined( VK_USE_PLATFORM_MACOS_MVK ) 636 //=== VK_MVK_macos_surface === 637 PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0; 638 # else 639 PFN_dummy vkCreateMacOSSurfaceMVK_placeholder = 0; 640 # endif /*VK_USE_PLATFORM_MACOS_MVK*/ 641 642 # if defined( VK_USE_PLATFORM_VI_NN ) 643 //=== VK_NN_vi_surface === 644 PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0; 645 # else 646 PFN_dummy vkCreateViSurfaceNN_placeholder = 0; 647 # endif /*VK_USE_PLATFORM_VI_NN*/ 648 649 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 650 //=== VK_NV_acquire_winrt_display === 651 PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0; 652 PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0; 653 # else 654 PFN_dummy vkAcquireWinrtDisplayNV_placeholder = 0; 655 PFN_dummy vkGetWinrtDisplayNV_placeholder = 0; 656 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 657 658 //=== VK_NV_cooperative_matrix === 659 PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0; 660 661 //=== VK_NV_coverage_reduction_mode === 662 PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 663 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0; 664 665 //=== VK_NV_external_memory_capabilities === 666 PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0; 667 668 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 669 //=== VK_QNX_screen_surface === 670 PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0; 671 PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0; 672 # else 673 PFN_dummy vkCreateScreenSurfaceQNX_placeholder = 0; 674 PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder = 0; 675 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 676 677 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; 678 }; 679 680 class DeviceDispatcher : public DispatchLoaderBase 681 { 682 public: DeviceDispatcher(PFN_vkGetDeviceProcAddr getProcAddr)683 DeviceDispatcher( PFN_vkGetDeviceProcAddr getProcAddr ) : vkGetDeviceProcAddr( getProcAddr ) {} 684 DeviceDispatcher(std::nullptr_t)685 DeviceDispatcher( std::nullptr_t ) : DispatchLoaderBase( nullptr ) {} 686 init(VkDevice device)687 void init( VkDevice device ) 688 { 689 //=== VK_VERSION_1_0 === 690 vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) ); 691 vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) ); 692 vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) ); 693 vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) ); 694 vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) ); 695 vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) ); 696 vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) ); 697 vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) ); 698 vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) ); 699 vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) ); 700 vkFlushMappedMemoryRanges = 701 PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) ); 702 vkInvalidateMappedMemoryRanges = 703 PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) ); 704 vkGetDeviceMemoryCommitment = 705 PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) ); 706 vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) ); 707 vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) ); 708 vkGetBufferMemoryRequirements = 709 PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) ); 710 vkGetImageMemoryRequirements = 711 PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) ); 712 vkGetImageSparseMemoryRequirements = 713 PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) ); 714 vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) ); 715 vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) ); 716 vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) ); 717 vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) ); 718 vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) ); 719 vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) ); 720 vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) ); 721 vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) ); 722 vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) ); 723 vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) ); 724 vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) ); 725 vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) ); 726 vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) ); 727 vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) ); 728 vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) ); 729 vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) ); 730 vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) ); 731 vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) ); 732 vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) ); 733 vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) ); 734 vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) ); 735 vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) ); 736 vkGetImageSubresourceLayout = 737 PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) ); 738 vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) ); 739 vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) ); 740 vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) ); 741 vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) ); 742 vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) ); 743 vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) ); 744 vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) ); 745 vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) ); 746 vkCreateGraphicsPipelines = 747 PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) ); 748 vkCreateComputePipelines = 749 PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) ); 750 vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) ); 751 vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) ); 752 vkDestroyPipelineLayout = 753 PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) ); 754 vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) ); 755 vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) ); 756 vkCreateDescriptorSetLayout = 757 PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) ); 758 vkDestroyDescriptorSetLayout = 759 PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) ); 760 vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) ); 761 vkDestroyDescriptorPool = 762 PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) ); 763 vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) ); 764 vkAllocateDescriptorSets = 765 PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) ); 766 vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) ); 767 vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) ); 768 vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) ); 769 vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) ); 770 vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) ); 771 vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) ); 772 vkGetRenderAreaGranularity = 773 PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) ); 774 vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) ); 775 vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) ); 776 vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) ); 777 vkAllocateCommandBuffers = 778 PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) ); 779 vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) ); 780 vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) ); 781 vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) ); 782 vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) ); 783 vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) ); 784 vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) ); 785 vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) ); 786 vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) ); 787 vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) ); 788 vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) ); 789 vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) ); 790 vkCmdSetStencilCompareMask = 791 PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) ); 792 vkCmdSetStencilWriteMask = 793 PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) ); 794 vkCmdSetStencilReference = 795 PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) ); 796 vkCmdBindDescriptorSets = 797 PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) ); 798 vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) ); 799 vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) ); 800 vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) ); 801 vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) ); 802 vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) ); 803 vkCmdDrawIndexedIndirect = 804 PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) ); 805 vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) ); 806 vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) ); 807 vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) ); 808 vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) ); 809 vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) ); 810 vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) ); 811 vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) ); 812 vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) ); 813 vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) ); 814 vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) ); 815 vkCmdClearDepthStencilImage = 816 PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) ); 817 vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) ); 818 vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) ); 819 vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) ); 820 vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) ); 821 vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) ); 822 vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) ); 823 vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) ); 824 vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) ); 825 vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) ); 826 vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) ); 827 vkCmdCopyQueryPoolResults = 828 PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) ); 829 vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) ); 830 vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) ); 831 vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) ); 832 vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) ); 833 vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) ); 834 835 //=== VK_VERSION_1_1 === 836 vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) ); 837 vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) ); 838 vkGetDeviceGroupPeerMemoryFeatures = 839 PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) ); 840 vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) ); 841 vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) ); 842 vkGetImageMemoryRequirements2 = 843 PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) ); 844 vkGetBufferMemoryRequirements2 = 845 PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) ); 846 vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( 847 vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) ); 848 vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) ); 849 vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) ); 850 vkCreateSamplerYcbcrConversion = 851 PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) ); 852 vkDestroySamplerYcbcrConversion = 853 PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) ); 854 vkCreateDescriptorUpdateTemplate = 855 PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) ); 856 vkDestroyDescriptorUpdateTemplate = 857 PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) ); 858 vkUpdateDescriptorSetWithTemplate = 859 PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) ); 860 vkGetDescriptorSetLayoutSupport = 861 PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) ); 862 863 //=== VK_VERSION_1_2 === 864 vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) ); 865 vkCmdDrawIndexedIndirectCount = 866 PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) ); 867 vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) ); 868 vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) ); 869 vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) ); 870 vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) ); 871 vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) ); 872 vkGetSemaphoreCounterValue = 873 PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) ); 874 vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) ); 875 vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) ); 876 vkGetBufferDeviceAddress = 877 PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) ); 878 vkGetBufferOpaqueCaptureAddress = 879 PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) ); 880 vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( 881 vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); 882 883 //=== VK_AMD_buffer_marker === 884 vkCmdWriteBufferMarkerAMD = 885 PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) ); 886 887 //=== VK_AMD_display_native_hdr === 888 vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) ); 889 890 //=== VK_AMD_draw_indirect_count === 891 vkCmdDrawIndirectCountAMD = 892 PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) ); 893 if ( !vkCmdDrawIndirectCount ) 894 vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; 895 vkCmdDrawIndexedIndirectCountAMD = 896 PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) ); 897 if ( !vkCmdDrawIndexedIndirectCount ) 898 vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; 899 900 //=== VK_AMD_shader_info === 901 vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) ); 902 903 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 904 //=== VK_ANDROID_external_memory_android_hardware_buffer === 905 vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( 906 vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); 907 vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( 908 vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); 909 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 910 911 //=== VK_EXT_buffer_device_address === 912 vkGetBufferDeviceAddressEXT = 913 PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) ); 914 if ( !vkGetBufferDeviceAddress ) 915 vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; 916 917 //=== VK_EXT_calibrated_timestamps === 918 vkGetCalibratedTimestampsEXT = 919 PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) ); 920 921 //=== VK_EXT_color_write_enable === 922 vkCmdSetColorWriteEnableEXT = 923 PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) ); 924 925 //=== VK_EXT_conditional_rendering === 926 vkCmdBeginConditionalRenderingEXT = 927 PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) ); 928 vkCmdEndConditionalRenderingEXT = 929 PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) ); 930 931 //=== VK_EXT_debug_marker === 932 vkDebugMarkerSetObjectTagEXT = 933 PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) ); 934 vkDebugMarkerSetObjectNameEXT = 935 PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) ); 936 vkCmdDebugMarkerBeginEXT = 937 PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) ); 938 vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) ); 939 vkCmdDebugMarkerInsertEXT = 940 PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) ); 941 942 //=== VK_EXT_debug_utils === 943 vkSetDebugUtilsObjectNameEXT = 944 PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) ); 945 vkSetDebugUtilsObjectTagEXT = 946 PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) ); 947 vkQueueBeginDebugUtilsLabelEXT = 948 PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) ); 949 vkQueueEndDebugUtilsLabelEXT = 950 PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) ); 951 vkQueueInsertDebugUtilsLabelEXT = 952 PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) ); 953 vkCmdBeginDebugUtilsLabelEXT = 954 PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) ); 955 vkCmdEndDebugUtilsLabelEXT = 956 PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) ); 957 vkCmdInsertDebugUtilsLabelEXT = 958 PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) ); 959 960 //=== VK_EXT_discard_rectangles === 961 vkCmdSetDiscardRectangleEXT = 962 PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) ); 963 964 //=== VK_EXT_display_control === 965 vkDisplayPowerControlEXT = 966 PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) ); 967 vkRegisterDeviceEventEXT = 968 PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) ); 969 vkRegisterDisplayEventEXT = 970 PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) ); 971 vkGetSwapchainCounterEXT = 972 PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) ); 973 974 //=== VK_EXT_extended_dynamic_state === 975 vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) ); 976 vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) ); 977 vkCmdSetPrimitiveTopologyEXT = 978 PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) ); 979 vkCmdSetViewportWithCountEXT = 980 PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) ); 981 vkCmdSetScissorWithCountEXT = 982 PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) ); 983 vkCmdBindVertexBuffers2EXT = 984 PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) ); 985 vkCmdSetDepthTestEnableEXT = 986 PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) ); 987 vkCmdSetDepthWriteEnableEXT = 988 PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) ); 989 vkCmdSetDepthCompareOpEXT = 990 PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) ); 991 vkCmdSetDepthBoundsTestEnableEXT = 992 PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) ); 993 vkCmdSetStencilTestEnableEXT = 994 PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) ); 995 vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) ); 996 997 //=== VK_EXT_extended_dynamic_state2 === 998 vkCmdSetPatchControlPointsEXT = 999 PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) ); 1000 vkCmdSetRasterizerDiscardEnableEXT = 1001 PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) ); 1002 vkCmdSetDepthBiasEnableEXT = 1003 PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) ); 1004 vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) ); 1005 vkCmdSetPrimitiveRestartEnableEXT = 1006 PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) ); 1007 1008 //=== VK_EXT_external_memory_host === 1009 vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( 1010 vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) ); 1011 1012 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1013 //=== VK_EXT_full_screen_exclusive === 1014 vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( 1015 vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) ); 1016 vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( 1017 vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) ); 1018 vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( 1019 vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); 1020 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1021 1022 //=== VK_EXT_hdr_metadata === 1023 vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) ); 1024 1025 //=== VK_EXT_host_query_reset === 1026 vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) ); 1027 if ( !vkResetQueryPool ) 1028 vkResetQueryPool = vkResetQueryPoolEXT; 1029 1030 //=== VK_EXT_image_drm_format_modifier === 1031 vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( 1032 vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); 1033 1034 //=== VK_EXT_line_rasterization === 1035 vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) ); 1036 1037 //=== VK_EXT_multi_draw === 1038 vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) ); 1039 vkCmdDrawMultiIndexedEXT = 1040 PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) ); 1041 1042 //=== VK_EXT_pageable_device_local_memory === 1043 vkSetDeviceMemoryPriorityEXT = 1044 PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) ); 1045 1046 //=== VK_EXT_private_data === 1047 vkCreatePrivateDataSlotEXT = 1048 PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) ); 1049 vkDestroyPrivateDataSlotEXT = 1050 PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) ); 1051 vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) ); 1052 vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) ); 1053 1054 //=== VK_EXT_sample_locations === 1055 vkCmdSetSampleLocationsEXT = 1056 PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) ); 1057 1058 //=== VK_EXT_transform_feedback === 1059 vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( 1060 vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) ); 1061 vkCmdBeginTransformFeedbackEXT = 1062 PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) ); 1063 vkCmdEndTransformFeedbackEXT = 1064 PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) ); 1065 vkCmdBeginQueryIndexedEXT = 1066 PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) ); 1067 vkCmdEndQueryIndexedEXT = 1068 PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) ); 1069 vkCmdDrawIndirectByteCountEXT = 1070 PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) ); 1071 1072 //=== VK_EXT_validation_cache === 1073 vkCreateValidationCacheEXT = 1074 PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) ); 1075 vkDestroyValidationCacheEXT = 1076 PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) ); 1077 vkMergeValidationCachesEXT = 1078 PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) ); 1079 vkGetValidationCacheDataEXT = 1080 PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) ); 1081 1082 //=== VK_EXT_vertex_input_dynamic_state === 1083 vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) ); 1084 1085 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1086 //=== VK_FUCHSIA_buffer_collection === 1087 vkCreateBufferCollectionFUCHSIA = 1088 PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) ); 1089 vkSetBufferCollectionImageConstraintsFUCHSIA = PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( 1090 vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) ); 1091 vkSetBufferCollectionBufferConstraintsFUCHSIA = PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( 1092 vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) ); 1093 vkDestroyBufferCollectionFUCHSIA = 1094 PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) ); 1095 vkGetBufferCollectionPropertiesFUCHSIA = PFN_vkGetBufferCollectionPropertiesFUCHSIA( 1096 vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) ); 1097 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1098 1099 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1100 //=== VK_FUCHSIA_external_memory === 1101 vkGetMemoryZirconHandleFUCHSIA = 1102 PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) ); 1103 vkGetMemoryZirconHandlePropertiesFUCHSIA = PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( 1104 vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) ); 1105 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1106 1107 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1108 //=== VK_FUCHSIA_external_semaphore === 1109 vkImportSemaphoreZirconHandleFUCHSIA = PFN_vkImportSemaphoreZirconHandleFUCHSIA( 1110 vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) ); 1111 vkGetSemaphoreZirconHandleFUCHSIA = 1112 PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) ); 1113 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1114 1115 //=== VK_GOOGLE_display_timing === 1116 vkGetRefreshCycleDurationGOOGLE = 1117 PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) ); 1118 vkGetPastPresentationTimingGOOGLE = 1119 PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) ); 1120 1121 //=== VK_HUAWEI_invocation_mask === 1122 vkCmdBindInvocationMaskHUAWEI = 1123 PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) ); 1124 1125 //=== VK_HUAWEI_subpass_shading === 1126 vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( 1127 vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) ); 1128 vkCmdSubpassShadingHUAWEI = 1129 PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) ); 1130 1131 //=== VK_INTEL_performance_query === 1132 vkInitializePerformanceApiINTEL = 1133 PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) ); 1134 vkUninitializePerformanceApiINTEL = 1135 PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) ); 1136 vkCmdSetPerformanceMarkerINTEL = 1137 PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) ); 1138 vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( 1139 vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); 1140 vkCmdSetPerformanceOverrideINTEL = 1141 PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) ); 1142 vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( 1143 vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) ); 1144 vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( 1145 vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) ); 1146 vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( 1147 vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) ); 1148 vkGetPerformanceParameterINTEL = 1149 PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) ); 1150 1151 //=== VK_KHR_acceleration_structure === 1152 vkCreateAccelerationStructureKHR = 1153 PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) ); 1154 vkDestroyAccelerationStructureKHR = 1155 PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) ); 1156 vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( 1157 vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) ); 1158 vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( 1159 vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); 1160 vkBuildAccelerationStructuresKHR = 1161 PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) ); 1162 vkCopyAccelerationStructureKHR = 1163 PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) ); 1164 vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( 1165 vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) ); 1166 vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( 1167 vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) ); 1168 vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( 1169 vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) ); 1170 vkCmdCopyAccelerationStructureKHR = 1171 PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) ); 1172 vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( 1173 vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); 1174 vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( 1175 vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); 1176 vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( 1177 vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) ); 1178 vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( 1179 vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); 1180 vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( 1181 vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); 1182 vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( 1183 vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) ); 1184 1185 //=== VK_KHR_bind_memory2 === 1186 vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) ); 1187 if ( !vkBindBufferMemory2 ) 1188 vkBindBufferMemory2 = vkBindBufferMemory2KHR; 1189 vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) ); 1190 if ( !vkBindImageMemory2 ) 1191 vkBindImageMemory2 = vkBindImageMemory2KHR; 1192 1193 //=== VK_KHR_buffer_device_address === 1194 vkGetBufferDeviceAddressKHR = 1195 PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) ); 1196 if ( !vkGetBufferDeviceAddress ) 1197 vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; 1198 vkGetBufferOpaqueCaptureAddressKHR = 1199 PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) ); 1200 if ( !vkGetBufferOpaqueCaptureAddress ) 1201 vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; 1202 vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( 1203 vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); 1204 if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) 1205 vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; 1206 1207 //=== VK_KHR_copy_commands2 === 1208 vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) ); 1209 vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) ); 1210 vkCmdCopyBufferToImage2KHR = 1211 PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) ); 1212 vkCmdCopyImageToBuffer2KHR = 1213 PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) ); 1214 vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) ); 1215 vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) ); 1216 1217 //=== VK_KHR_create_renderpass2 === 1218 vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) ); 1219 if ( !vkCreateRenderPass2 ) 1220 vkCreateRenderPass2 = vkCreateRenderPass2KHR; 1221 vkCmdBeginRenderPass2KHR = 1222 PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) ); 1223 if ( !vkCmdBeginRenderPass2 ) 1224 vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; 1225 vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) ); 1226 if ( !vkCmdNextSubpass2 ) 1227 vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; 1228 vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) ); 1229 if ( !vkCmdEndRenderPass2 ) 1230 vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; 1231 1232 //=== VK_KHR_deferred_host_operations === 1233 vkCreateDeferredOperationKHR = 1234 PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) ); 1235 vkDestroyDeferredOperationKHR = 1236 PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) ); 1237 vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( 1238 vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); 1239 vkGetDeferredOperationResultKHR = 1240 PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) ); 1241 vkDeferredOperationJoinKHR = 1242 PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) ); 1243 1244 //=== VK_KHR_descriptor_update_template === 1245 vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( 1246 vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) ); 1247 if ( !vkCreateDescriptorUpdateTemplate ) 1248 vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; 1249 vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( 1250 vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) ); 1251 if ( !vkDestroyDescriptorUpdateTemplate ) 1252 vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; 1253 vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( 1254 vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) ); 1255 if ( !vkUpdateDescriptorSetWithTemplate ) 1256 vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; 1257 vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( 1258 vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); 1259 1260 //=== VK_KHR_device_group === 1261 vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( 1262 vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); 1263 if ( !vkGetDeviceGroupPeerMemoryFeatures ) 1264 vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; 1265 vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) ); 1266 if ( !vkCmdSetDeviceMask ) 1267 vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; 1268 vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) ); 1269 if ( !vkCmdDispatchBase ) 1270 vkCmdDispatchBase = vkCmdDispatchBaseKHR; 1271 vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( 1272 vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); 1273 vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( 1274 vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); 1275 vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) ); 1276 1277 //=== VK_KHR_display_swapchain === 1278 vkCreateSharedSwapchainsKHR = 1279 PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) ); 1280 1281 //=== VK_KHR_draw_indirect_count === 1282 vkCmdDrawIndirectCountKHR = 1283 PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) ); 1284 if ( !vkCmdDrawIndirectCount ) 1285 vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; 1286 vkCmdDrawIndexedIndirectCountKHR = 1287 PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) ); 1288 if ( !vkCmdDrawIndexedIndirectCount ) 1289 vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; 1290 1291 //=== VK_KHR_external_fence_fd === 1292 vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) ); 1293 vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) ); 1294 1295 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1296 //=== VK_KHR_external_fence_win32 === 1297 vkImportFenceWin32HandleKHR = 1298 PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) ); 1299 vkGetFenceWin32HandleKHR = 1300 PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) ); 1301 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1302 1303 //=== VK_KHR_external_memory_fd === 1304 vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) ); 1305 vkGetMemoryFdPropertiesKHR = 1306 PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) ); 1307 1308 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1309 //=== VK_KHR_external_memory_win32 === 1310 vkGetMemoryWin32HandleKHR = 1311 PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) ); 1312 vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( 1313 vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) ); 1314 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1315 1316 //=== VK_KHR_external_semaphore_fd === 1317 vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) ); 1318 vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) ); 1319 1320 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1321 //=== VK_KHR_external_semaphore_win32 === 1322 vkImportSemaphoreWin32HandleKHR = 1323 PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) ); 1324 vkGetSemaphoreWin32HandleKHR = 1325 PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) ); 1326 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1327 1328 //=== VK_KHR_fragment_shading_rate === 1329 vkCmdSetFragmentShadingRateKHR = 1330 PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) ); 1331 1332 //=== VK_KHR_get_memory_requirements2 === 1333 vkGetImageMemoryRequirements2KHR = 1334 PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) ); 1335 if ( !vkGetImageMemoryRequirements2 ) 1336 vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; 1337 vkGetBufferMemoryRequirements2KHR = 1338 PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) ); 1339 if ( !vkGetBufferMemoryRequirements2 ) 1340 vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; 1341 vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( 1342 vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) ); 1343 if ( !vkGetImageSparseMemoryRequirements2 ) 1344 vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; 1345 1346 //=== VK_KHR_maintenance1 === 1347 vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) ); 1348 if ( !vkTrimCommandPool ) 1349 vkTrimCommandPool = vkTrimCommandPoolKHR; 1350 1351 //=== VK_KHR_maintenance3 === 1352 vkGetDescriptorSetLayoutSupportKHR = 1353 PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) ); 1354 if ( !vkGetDescriptorSetLayoutSupport ) 1355 vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; 1356 1357 //=== VK_KHR_maintenance4 === 1358 vkGetDeviceBufferMemoryRequirementsKHR = PFN_vkGetDeviceBufferMemoryRequirementsKHR( 1359 vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) ); 1360 vkGetDeviceImageMemoryRequirementsKHR = PFN_vkGetDeviceImageMemoryRequirementsKHR( 1361 vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) ); 1362 vkGetDeviceImageSparseMemoryRequirementsKHR = PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( 1363 vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) ); 1364 1365 //=== VK_KHR_performance_query === 1366 vkAcquireProfilingLockKHR = 1367 PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) ); 1368 vkReleaseProfilingLockKHR = 1369 PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) ); 1370 1371 //=== VK_KHR_pipeline_executable_properties === 1372 vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( 1373 vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) ); 1374 vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( 1375 vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) ); 1376 vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( 1377 vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); 1378 1379 //=== VK_KHR_present_wait === 1380 vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) ); 1381 1382 //=== VK_KHR_push_descriptor === 1383 vkCmdPushDescriptorSetKHR = 1384 PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) ); 1385 1386 //=== VK_KHR_ray_tracing_pipeline === 1387 vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) ); 1388 vkCreateRayTracingPipelinesKHR = 1389 PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) ); 1390 vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( 1391 vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) ); 1392 vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( 1393 vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); 1394 vkCmdTraceRaysIndirectKHR = 1395 PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) ); 1396 vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( 1397 vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); 1398 vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( 1399 vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); 1400 1401 //=== VK_KHR_sampler_ycbcr_conversion === 1402 vkCreateSamplerYcbcrConversionKHR = 1403 PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) ); 1404 if ( !vkCreateSamplerYcbcrConversion ) 1405 vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; 1406 vkDestroySamplerYcbcrConversionKHR = 1407 PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) ); 1408 if ( !vkDestroySamplerYcbcrConversion ) 1409 vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; 1410 1411 //=== VK_KHR_shared_presentable_image === 1412 vkGetSwapchainStatusKHR = 1413 PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) ); 1414 1415 //=== VK_KHR_swapchain === 1416 vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) ); 1417 vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) ); 1418 vkGetSwapchainImagesKHR = 1419 PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) ); 1420 vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) ); 1421 vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) ); 1422 1423 //=== VK_KHR_synchronization2 === 1424 vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) ); 1425 vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) ); 1426 vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) ); 1427 vkCmdPipelineBarrier2KHR = 1428 PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) ); 1429 vkCmdWriteTimestamp2KHR = 1430 PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) ); 1431 vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) ); 1432 vkCmdWriteBufferMarker2AMD = 1433 PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) ); 1434 vkGetQueueCheckpointData2NV = 1435 PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) ); 1436 1437 //=== VK_KHR_timeline_semaphore === 1438 vkGetSemaphoreCounterValueKHR = 1439 PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) ); 1440 if ( !vkGetSemaphoreCounterValue ) 1441 vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; 1442 vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) ); 1443 if ( !vkWaitSemaphores ) 1444 vkWaitSemaphores = vkWaitSemaphoresKHR; 1445 vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) ); 1446 if ( !vkSignalSemaphore ) 1447 vkSignalSemaphore = vkSignalSemaphoreKHR; 1448 1449 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 1450 //=== VK_KHR_video_decode_queue === 1451 vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) ); 1452 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 1453 1454 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 1455 //=== VK_KHR_video_encode_queue === 1456 vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) ); 1457 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 1458 1459 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 1460 //=== VK_KHR_video_queue === 1461 vkCreateVideoSessionKHR = 1462 PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) ); 1463 vkDestroyVideoSessionKHR = 1464 PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) ); 1465 vkGetVideoSessionMemoryRequirementsKHR = PFN_vkGetVideoSessionMemoryRequirementsKHR( 1466 vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) ); 1467 vkBindVideoSessionMemoryKHR = 1468 PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) ); 1469 vkCreateVideoSessionParametersKHR = 1470 PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) ); 1471 vkUpdateVideoSessionParametersKHR = 1472 PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) ); 1473 vkDestroyVideoSessionParametersKHR = 1474 PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) ); 1475 vkCmdBeginVideoCodingKHR = 1476 PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) ); 1477 vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) ); 1478 vkCmdControlVideoCodingKHR = 1479 PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) ); 1480 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 1481 1482 //=== VK_NVX_binary_import === 1483 vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) ); 1484 vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) ); 1485 vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) ); 1486 vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) ); 1487 vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) ); 1488 1489 //=== VK_NVX_image_view_handle === 1490 vkGetImageViewHandleNVX = 1491 PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) ); 1492 vkGetImageViewAddressNVX = 1493 PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) ); 1494 1495 //=== VK_NV_clip_space_w_scaling === 1496 vkCmdSetViewportWScalingNV = 1497 PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) ); 1498 1499 //=== VK_NV_device_diagnostic_checkpoints === 1500 vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) ); 1501 vkGetQueueCheckpointDataNV = 1502 PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) ); 1503 1504 //=== VK_NV_device_generated_commands === 1505 vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( 1506 vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); 1507 vkCmdPreprocessGeneratedCommandsNV = 1508 PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) ); 1509 vkCmdExecuteGeneratedCommandsNV = 1510 PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) ); 1511 vkCmdBindPipelineShaderGroupNV = 1512 PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) ); 1513 vkCreateIndirectCommandsLayoutNV = 1514 PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) ); 1515 vkDestroyIndirectCommandsLayoutNV = 1516 PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) ); 1517 1518 //=== VK_NV_external_memory_rdma === 1519 vkGetMemoryRemoteAddressNV = 1520 PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) ); 1521 1522 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1523 //=== VK_NV_external_memory_win32 === 1524 vkGetMemoryWin32HandleNV = 1525 PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) ); 1526 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1527 1528 //=== VK_NV_fragment_shading_rate_enums === 1529 vkCmdSetFragmentShadingRateEnumNV = 1530 PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) ); 1531 1532 //=== VK_NV_mesh_shader === 1533 vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) ); 1534 vkCmdDrawMeshTasksIndirectNV = 1535 PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) ); 1536 vkCmdDrawMeshTasksIndirectCountNV = 1537 PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) ); 1538 1539 //=== VK_NV_ray_tracing === 1540 vkCreateAccelerationStructureNV = 1541 PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) ); 1542 vkDestroyAccelerationStructureNV = 1543 PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) ); 1544 vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( 1545 vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); 1546 vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( 1547 vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) ); 1548 vkCmdBuildAccelerationStructureNV = 1549 PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) ); 1550 vkCmdCopyAccelerationStructureNV = 1551 PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) ); 1552 vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) ); 1553 vkCreateRayTracingPipelinesNV = 1554 PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) ); 1555 vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( 1556 vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) ); 1557 if ( !vkGetRayTracingShaderGroupHandlesKHR ) 1558 vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; 1559 vkGetAccelerationStructureHandleNV = 1560 PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) ); 1561 vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( 1562 vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); 1563 vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) ); 1564 1565 //=== VK_NV_scissor_exclusive === 1566 vkCmdSetExclusiveScissorNV = 1567 PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) ); 1568 1569 //=== VK_NV_shading_rate_image === 1570 vkCmdBindShadingRateImageNV = 1571 PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) ); 1572 vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( 1573 vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) ); 1574 vkCmdSetCoarseSampleOrderNV = 1575 PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) ); 1576 } 1577 1578 public: 1579 //=== VK_VERSION_1_0 === 1580 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; 1581 PFN_vkDestroyDevice vkDestroyDevice = 0; 1582 PFN_vkGetDeviceQueue vkGetDeviceQueue = 0; 1583 PFN_vkQueueSubmit vkQueueSubmit = 0; 1584 PFN_vkQueueWaitIdle vkQueueWaitIdle = 0; 1585 PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0; 1586 PFN_vkAllocateMemory vkAllocateMemory = 0; 1587 PFN_vkFreeMemory vkFreeMemory = 0; 1588 PFN_vkMapMemory vkMapMemory = 0; 1589 PFN_vkUnmapMemory vkUnmapMemory = 0; 1590 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0; 1591 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0; 1592 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0; 1593 PFN_vkBindBufferMemory vkBindBufferMemory = 0; 1594 PFN_vkBindImageMemory vkBindImageMemory = 0; 1595 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0; 1596 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0; 1597 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0; 1598 PFN_vkQueueBindSparse vkQueueBindSparse = 0; 1599 PFN_vkCreateFence vkCreateFence = 0; 1600 PFN_vkDestroyFence vkDestroyFence = 0; 1601 PFN_vkResetFences vkResetFences = 0; 1602 PFN_vkGetFenceStatus vkGetFenceStatus = 0; 1603 PFN_vkWaitForFences vkWaitForFences = 0; 1604 PFN_vkCreateSemaphore vkCreateSemaphore = 0; 1605 PFN_vkDestroySemaphore vkDestroySemaphore = 0; 1606 PFN_vkCreateEvent vkCreateEvent = 0; 1607 PFN_vkDestroyEvent vkDestroyEvent = 0; 1608 PFN_vkGetEventStatus vkGetEventStatus = 0; 1609 PFN_vkSetEvent vkSetEvent = 0; 1610 PFN_vkResetEvent vkResetEvent = 0; 1611 PFN_vkCreateQueryPool vkCreateQueryPool = 0; 1612 PFN_vkDestroyQueryPool vkDestroyQueryPool = 0; 1613 PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0; 1614 PFN_vkCreateBuffer vkCreateBuffer = 0; 1615 PFN_vkDestroyBuffer vkDestroyBuffer = 0; 1616 PFN_vkCreateBufferView vkCreateBufferView = 0; 1617 PFN_vkDestroyBufferView vkDestroyBufferView = 0; 1618 PFN_vkCreateImage vkCreateImage = 0; 1619 PFN_vkDestroyImage vkDestroyImage = 0; 1620 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0; 1621 PFN_vkCreateImageView vkCreateImageView = 0; 1622 PFN_vkDestroyImageView vkDestroyImageView = 0; 1623 PFN_vkCreateShaderModule vkCreateShaderModule = 0; 1624 PFN_vkDestroyShaderModule vkDestroyShaderModule = 0; 1625 PFN_vkCreatePipelineCache vkCreatePipelineCache = 0; 1626 PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0; 1627 PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0; 1628 PFN_vkMergePipelineCaches vkMergePipelineCaches = 0; 1629 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0; 1630 PFN_vkCreateComputePipelines vkCreateComputePipelines = 0; 1631 PFN_vkDestroyPipeline vkDestroyPipeline = 0; 1632 PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; 1633 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0; 1634 PFN_vkCreateSampler vkCreateSampler = 0; 1635 PFN_vkDestroySampler vkDestroySampler = 0; 1636 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0; 1637 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0; 1638 PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0; 1639 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0; 1640 PFN_vkResetDescriptorPool vkResetDescriptorPool = 0; 1641 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0; 1642 PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0; 1643 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0; 1644 PFN_vkCreateFramebuffer vkCreateFramebuffer = 0; 1645 PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0; 1646 PFN_vkCreateRenderPass vkCreateRenderPass = 0; 1647 PFN_vkDestroyRenderPass vkDestroyRenderPass = 0; 1648 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0; 1649 PFN_vkCreateCommandPool vkCreateCommandPool = 0; 1650 PFN_vkDestroyCommandPool vkDestroyCommandPool = 0; 1651 PFN_vkResetCommandPool vkResetCommandPool = 0; 1652 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0; 1653 PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0; 1654 PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; 1655 PFN_vkEndCommandBuffer vkEndCommandBuffer = 0; 1656 PFN_vkResetCommandBuffer vkResetCommandBuffer = 0; 1657 PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; 1658 PFN_vkCmdSetViewport vkCmdSetViewport = 0; 1659 PFN_vkCmdSetScissor vkCmdSetScissor = 0; 1660 PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0; 1661 PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0; 1662 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0; 1663 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0; 1664 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0; 1665 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0; 1666 PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0; 1667 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; 1668 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; 1669 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; 1670 PFN_vkCmdDraw vkCmdDraw = 0; 1671 PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; 1672 PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0; 1673 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0; 1674 PFN_vkCmdDispatch vkCmdDispatch = 0; 1675 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0; 1676 PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; 1677 PFN_vkCmdCopyImage vkCmdCopyImage = 0; 1678 PFN_vkCmdBlitImage vkCmdBlitImage = 0; 1679 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; 1680 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0; 1681 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0; 1682 PFN_vkCmdFillBuffer vkCmdFillBuffer = 0; 1683 PFN_vkCmdClearColorImage vkCmdClearColorImage = 0; 1684 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0; 1685 PFN_vkCmdClearAttachments vkCmdClearAttachments = 0; 1686 PFN_vkCmdResolveImage vkCmdResolveImage = 0; 1687 PFN_vkCmdSetEvent vkCmdSetEvent = 0; 1688 PFN_vkCmdResetEvent vkCmdResetEvent = 0; 1689 PFN_vkCmdWaitEvents vkCmdWaitEvents = 0; 1690 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0; 1691 PFN_vkCmdBeginQuery vkCmdBeginQuery = 0; 1692 PFN_vkCmdEndQuery vkCmdEndQuery = 0; 1693 PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0; 1694 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0; 1695 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0; 1696 PFN_vkCmdPushConstants vkCmdPushConstants = 0; 1697 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0; 1698 PFN_vkCmdNextSubpass vkCmdNextSubpass = 0; 1699 PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; 1700 PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; 1701 1702 //=== VK_VERSION_1_1 === 1703 PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0; 1704 PFN_vkBindImageMemory2 vkBindImageMemory2 = 0; 1705 PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0; 1706 PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0; 1707 PFN_vkCmdDispatchBase vkCmdDispatchBase = 0; 1708 PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0; 1709 PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0; 1710 PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0; 1711 PFN_vkTrimCommandPool vkTrimCommandPool = 0; 1712 PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0; 1713 PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0; 1714 PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0; 1715 PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0; 1716 PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0; 1717 PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0; 1718 PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0; 1719 1720 //=== VK_VERSION_1_2 === 1721 PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0; 1722 PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0; 1723 PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0; 1724 PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0; 1725 PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0; 1726 PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0; 1727 PFN_vkResetQueryPool vkResetQueryPool = 0; 1728 PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0; 1729 PFN_vkWaitSemaphores vkWaitSemaphores = 0; 1730 PFN_vkSignalSemaphore vkSignalSemaphore = 0; 1731 PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0; 1732 PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0; 1733 PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0; 1734 1735 //=== VK_AMD_buffer_marker === 1736 PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0; 1737 1738 //=== VK_AMD_display_native_hdr === 1739 PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0; 1740 1741 //=== VK_AMD_draw_indirect_count === 1742 PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0; 1743 PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0; 1744 1745 //=== VK_AMD_shader_info === 1746 PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0; 1747 1748 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 1749 //=== VK_ANDROID_external_memory_android_hardware_buffer === 1750 PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0; 1751 PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0; 1752 # else 1753 PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder = 0; 1754 PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder = 0; 1755 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 1756 1757 //=== VK_EXT_buffer_device_address === 1758 PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0; 1759 1760 //=== VK_EXT_calibrated_timestamps === 1761 PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0; 1762 1763 //=== VK_EXT_color_write_enable === 1764 PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0; 1765 1766 //=== VK_EXT_conditional_rendering === 1767 PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0; 1768 PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0; 1769 1770 //=== VK_EXT_debug_marker === 1771 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0; 1772 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0; 1773 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0; 1774 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0; 1775 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0; 1776 1777 //=== VK_EXT_debug_utils === 1778 PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0; 1779 PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0; 1780 PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0; 1781 PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0; 1782 PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0; 1783 PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0; 1784 PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0; 1785 PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0; 1786 1787 //=== VK_EXT_discard_rectangles === 1788 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0; 1789 1790 //=== VK_EXT_display_control === 1791 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0; 1792 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0; 1793 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0; 1794 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0; 1795 1796 //=== VK_EXT_extended_dynamic_state === 1797 PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0; 1798 PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0; 1799 PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0; 1800 PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0; 1801 PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0; 1802 PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0; 1803 PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0; 1804 PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0; 1805 PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0; 1806 PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0; 1807 PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0; 1808 PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0; 1809 1810 //=== VK_EXT_extended_dynamic_state2 === 1811 PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0; 1812 PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0; 1813 PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0; 1814 PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0; 1815 PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0; 1816 1817 //=== VK_EXT_external_memory_host === 1818 PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0; 1819 1820 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1821 //=== VK_EXT_full_screen_exclusive === 1822 PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0; 1823 PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0; 1824 PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0; 1825 # else 1826 PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder = 0; 1827 PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder = 0; 1828 PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder = 0; 1829 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1830 1831 //=== VK_EXT_hdr_metadata === 1832 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0; 1833 1834 //=== VK_EXT_host_query_reset === 1835 PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0; 1836 1837 //=== VK_EXT_image_drm_format_modifier === 1838 PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0; 1839 1840 //=== VK_EXT_line_rasterization === 1841 PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0; 1842 1843 //=== VK_EXT_multi_draw === 1844 PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0; 1845 PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0; 1846 1847 //=== VK_EXT_pageable_device_local_memory === 1848 PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0; 1849 1850 //=== VK_EXT_private_data === 1851 PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0; 1852 PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0; 1853 PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0; 1854 PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0; 1855 1856 //=== VK_EXT_sample_locations === 1857 PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0; 1858 1859 //=== VK_EXT_transform_feedback === 1860 PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0; 1861 PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0; 1862 PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0; 1863 PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0; 1864 PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0; 1865 PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0; 1866 1867 //=== VK_EXT_validation_cache === 1868 PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0; 1869 PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0; 1870 PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0; 1871 PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0; 1872 1873 //=== VK_EXT_vertex_input_dynamic_state === 1874 PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0; 1875 1876 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1877 //=== VK_FUCHSIA_buffer_collection === 1878 PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA = 0; 1879 PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA = 0; 1880 PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0; 1881 PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA = 0; 1882 PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA = 0; 1883 # else 1884 PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder = 0; 1885 PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder = 0; 1886 PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder = 0; 1887 PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder = 0; 1888 PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder = 0; 1889 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1890 1891 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1892 //=== VK_FUCHSIA_external_memory === 1893 PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0; 1894 PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0; 1895 # else 1896 PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder = 0; 1897 PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder = 0; 1898 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1899 1900 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1901 //=== VK_FUCHSIA_external_semaphore === 1902 PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0; 1903 PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0; 1904 # else 1905 PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder = 0; 1906 PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder = 0; 1907 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1908 1909 //=== VK_GOOGLE_display_timing === 1910 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0; 1911 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0; 1912 1913 //=== VK_HUAWEI_invocation_mask === 1914 PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0; 1915 1916 //=== VK_HUAWEI_subpass_shading === 1917 PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0; 1918 PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0; 1919 1920 //=== VK_INTEL_performance_query === 1921 PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0; 1922 PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0; 1923 PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0; 1924 PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0; 1925 PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0; 1926 PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0; 1927 PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0; 1928 PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0; 1929 PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0; 1930 1931 //=== VK_KHR_acceleration_structure === 1932 PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0; 1933 PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0; 1934 PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0; 1935 PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0; 1936 PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0; 1937 PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0; 1938 PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0; 1939 PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0; 1940 PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0; 1941 PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0; 1942 PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0; 1943 PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0; 1944 PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0; 1945 PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0; 1946 PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0; 1947 PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0; 1948 1949 //=== VK_KHR_bind_memory2 === 1950 PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0; 1951 PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0; 1952 1953 //=== VK_KHR_buffer_device_address === 1954 PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0; 1955 PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0; 1956 PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0; 1957 1958 //=== VK_KHR_copy_commands2 === 1959 PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0; 1960 PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0; 1961 PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0; 1962 PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0; 1963 PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0; 1964 PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0; 1965 1966 //=== VK_KHR_create_renderpass2 === 1967 PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0; 1968 PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0; 1969 PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0; 1970 PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0; 1971 1972 //=== VK_KHR_deferred_host_operations === 1973 PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0; 1974 PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0; 1975 PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0; 1976 PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0; 1977 PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0; 1978 1979 //=== VK_KHR_descriptor_update_template === 1980 PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0; 1981 PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0; 1982 PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0; 1983 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0; 1984 1985 //=== VK_KHR_device_group === 1986 PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0; 1987 PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0; 1988 PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0; 1989 PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0; 1990 PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0; 1991 PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0; 1992 1993 //=== VK_KHR_display_swapchain === 1994 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0; 1995 1996 //=== VK_KHR_draw_indirect_count === 1997 PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0; 1998 PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0; 1999 2000 //=== VK_KHR_external_fence_fd === 2001 PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0; 2002 PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0; 2003 2004 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2005 //=== VK_KHR_external_fence_win32 === 2006 PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0; 2007 PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0; 2008 # else 2009 PFN_dummy vkImportFenceWin32HandleKHR_placeholder = 0; 2010 PFN_dummy vkGetFenceWin32HandleKHR_placeholder = 0; 2011 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2012 2013 //=== VK_KHR_external_memory_fd === 2014 PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0; 2015 PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0; 2016 2017 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2018 //=== VK_KHR_external_memory_win32 === 2019 PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0; 2020 PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0; 2021 # else 2022 PFN_dummy vkGetMemoryWin32HandleKHR_placeholder = 0; 2023 PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder = 0; 2024 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2025 2026 //=== VK_KHR_external_semaphore_fd === 2027 PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0; 2028 PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0; 2029 2030 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2031 //=== VK_KHR_external_semaphore_win32 === 2032 PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0; 2033 PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0; 2034 # else 2035 PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder = 0; 2036 PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder = 0; 2037 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2038 2039 //=== VK_KHR_fragment_shading_rate === 2040 PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0; 2041 2042 //=== VK_KHR_get_memory_requirements2 === 2043 PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0; 2044 PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0; 2045 PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0; 2046 2047 //=== VK_KHR_maintenance1 === 2048 PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0; 2049 2050 //=== VK_KHR_maintenance3 === 2051 PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0; 2052 2053 //=== VK_KHR_maintenance4 === 2054 PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR = 0; 2055 PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR = 0; 2056 PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0; 2057 2058 //=== VK_KHR_performance_query === 2059 PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0; 2060 PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0; 2061 2062 //=== VK_KHR_pipeline_executable_properties === 2063 PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0; 2064 PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0; 2065 PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0; 2066 2067 //=== VK_KHR_present_wait === 2068 PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0; 2069 2070 //=== VK_KHR_push_descriptor === 2071 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0; 2072 2073 //=== VK_KHR_ray_tracing_pipeline === 2074 PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0; 2075 PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0; 2076 PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0; 2077 PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0; 2078 PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0; 2079 PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0; 2080 PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0; 2081 2082 //=== VK_KHR_sampler_ycbcr_conversion === 2083 PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0; 2084 PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0; 2085 2086 //=== VK_KHR_shared_presentable_image === 2087 PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0; 2088 2089 //=== VK_KHR_swapchain === 2090 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0; 2091 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0; 2092 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0; 2093 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0; 2094 PFN_vkQueuePresentKHR vkQueuePresentKHR = 0; 2095 2096 //=== VK_KHR_synchronization2 === 2097 PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0; 2098 PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0; 2099 PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0; 2100 PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0; 2101 PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0; 2102 PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0; 2103 PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0; 2104 PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0; 2105 2106 //=== VK_KHR_timeline_semaphore === 2107 PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0; 2108 PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0; 2109 PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0; 2110 2111 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 2112 //=== VK_KHR_video_decode_queue === 2113 PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0; 2114 # else 2115 PFN_dummy vkCmdDecodeVideoKHR_placeholder = 0; 2116 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 2117 2118 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 2119 //=== VK_KHR_video_encode_queue === 2120 PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0; 2121 # else 2122 PFN_dummy vkCmdEncodeVideoKHR_placeholder = 0; 2123 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 2124 2125 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 2126 //=== VK_KHR_video_queue === 2127 PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0; 2128 PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0; 2129 PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0; 2130 PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0; 2131 PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0; 2132 PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0; 2133 PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0; 2134 PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0; 2135 PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0; 2136 PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0; 2137 # else 2138 PFN_dummy vkCreateVideoSessionKHR_placeholder = 0; 2139 PFN_dummy vkDestroyVideoSessionKHR_placeholder = 0; 2140 PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder = 0; 2141 PFN_dummy vkBindVideoSessionMemoryKHR_placeholder = 0; 2142 PFN_dummy vkCreateVideoSessionParametersKHR_placeholder = 0; 2143 PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder = 0; 2144 PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder = 0; 2145 PFN_dummy vkCmdBeginVideoCodingKHR_placeholder = 0; 2146 PFN_dummy vkCmdEndVideoCodingKHR_placeholder = 0; 2147 PFN_dummy vkCmdControlVideoCodingKHR_placeholder = 0; 2148 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 2149 2150 //=== VK_NVX_binary_import === 2151 PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0; 2152 PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0; 2153 PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0; 2154 PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0; 2155 PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0; 2156 2157 //=== VK_NVX_image_view_handle === 2158 PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0; 2159 PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0; 2160 2161 //=== VK_NV_clip_space_w_scaling === 2162 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0; 2163 2164 //=== VK_NV_device_diagnostic_checkpoints === 2165 PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0; 2166 PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0; 2167 2168 //=== VK_NV_device_generated_commands === 2169 PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0; 2170 PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0; 2171 PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0; 2172 PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0; 2173 PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0; 2174 PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0; 2175 2176 //=== VK_NV_external_memory_rdma === 2177 PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0; 2178 2179 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2180 //=== VK_NV_external_memory_win32 === 2181 PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0; 2182 # else 2183 PFN_dummy vkGetMemoryWin32HandleNV_placeholder = 0; 2184 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2185 2186 //=== VK_NV_fragment_shading_rate_enums === 2187 PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0; 2188 2189 //=== VK_NV_mesh_shader === 2190 PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0; 2191 PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0; 2192 PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0; 2193 2194 //=== VK_NV_ray_tracing === 2195 PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0; 2196 PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0; 2197 PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0; 2198 PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0; 2199 PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0; 2200 PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0; 2201 PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0; 2202 PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0; 2203 PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0; 2204 PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0; 2205 PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0; 2206 PFN_vkCompileDeferredNV vkCompileDeferredNV = 0; 2207 2208 //=== VK_NV_scissor_exclusive === 2209 PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0; 2210 2211 //=== VK_NV_shading_rate_image === 2212 PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0; 2213 PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0; 2214 PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0; 2215 }; 2216 2217 //==================== 2218 //=== RAII HANDLES === 2219 //==================== 2220 2221 class Context 2222 { 2223 public: Context()2224 Context() : m_dispatcher( m_dynamicLoader.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" ) ) 2225 {} 2226 2227 ~Context() = default; 2228 2229 Context( Context const & ) = delete; Context(Context && rhs)2230 Context( Context && rhs ) VULKAN_HPP_NOEXCEPT 2231 : m_dynamicLoader( std::move( rhs.m_dynamicLoader ) ) 2232 , m_dispatcher( std::move( rhs.m_dispatcher ) ) 2233 {} 2234 Context & operator=( Context const & ) = delete; operator =(Context && rhs)2235 Context & operator =( Context && rhs ) VULKAN_HPP_NOEXCEPT 2236 { 2237 if ( this != &rhs ) 2238 { 2239 m_dynamicLoader = std::move( rhs.m_dynamicLoader ); 2240 m_dispatcher = std::move( rhs.m_dispatcher ); 2241 } 2242 return *this; 2243 } 2244 2245 //=== VK_VERSION_1_0 === 2246 2247 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> enumerateInstanceExtensionProperties( 2248 Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 2249 2250 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> enumerateInstanceLayerProperties() const; 2251 2252 //=== VK_VERSION_1_1 === 2253 2254 VULKAN_HPP_NODISCARD uint32_t enumerateInstanceVersion() const; 2255 getDispatcher() const2256 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher const * getDispatcher() const 2257 { 2258 VULKAN_HPP_ASSERT( m_dispatcher.getVkHeaderVersion() == VK_HEADER_VERSION ); 2259 return &m_dispatcher; 2260 } 2261 2262 private: 2263 VULKAN_HPP_NAMESPACE::DynamicLoader m_dynamicLoader; 2264 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher m_dispatcher; 2265 }; 2266 2267 class Instance 2268 { 2269 public: 2270 using CType = VkInstance; 2271 2272 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 2273 VULKAN_HPP_NAMESPACE::ObjectType::eInstance; 2274 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 2275 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance; 2276 2277 public: Instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context,VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)2278 Instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context, 2279 VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & createInfo, 2280 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 2281 : m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 2282 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 2283 , m_dispatcher( context.getDispatcher()->vkGetInstanceProcAddr ) 2284 { 2285 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 2286 context.getDispatcher()->vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ), 2287 m_allocator, 2288 reinterpret_cast<VkInstance *>( &m_instance ) ) ); 2289 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 2290 { 2291 throwResultException( result, "vkCreateInstance" ); 2292 } 2293 m_dispatcher.init( static_cast<VkInstance>( m_instance ) ); 2294 } 2295 Instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context,VkInstance instance,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)2296 Instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context, 2297 VkInstance instance, 2298 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 2299 : m_instance( instance ) 2300 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 2301 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 2302 , m_dispatcher( context.getDispatcher()->vkGetInstanceProcAddr ) 2303 { 2304 m_dispatcher.init( static_cast<VkInstance>( m_instance ) ); 2305 } 2306 Instance(std::nullptr_t)2307 Instance( std::nullptr_t ) {} 2308 ~Instance()2309 ~Instance() 2310 { 2311 if ( m_instance ) 2312 { 2313 getDispatcher()->vkDestroyInstance( static_cast<VkInstance>( m_instance ), m_allocator ); 2314 } 2315 } 2316 2317 Instance() = delete; 2318 Instance( Instance const & ) = delete; Instance(Instance && rhs)2319 Instance( Instance && rhs ) VULKAN_HPP_NOEXCEPT 2320 : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) ) 2321 , m_allocator( rhs.m_allocator ) 2322 , m_dispatcher( rhs.m_dispatcher ) 2323 {} 2324 Instance & operator=( Instance const & ) = delete; operator =(Instance && rhs)2325 Instance & operator =( Instance && rhs ) VULKAN_HPP_NOEXCEPT 2326 { 2327 if ( this != &rhs ) 2328 { 2329 if ( m_instance ) 2330 { 2331 getDispatcher()->vkDestroyInstance( static_cast<VkInstance>( m_instance ), m_allocator ); 2332 } 2333 m_instance = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ); 2334 m_allocator = rhs.m_allocator; 2335 m_dispatcher = rhs.m_dispatcher; 2336 } 2337 return *this; 2338 } 2339 operator *() const2340 VULKAN_HPP_NAMESPACE::Instance const & operator*() const VULKAN_HPP_NOEXCEPT 2341 { 2342 return m_instance; 2343 } 2344 getDispatcher() const2345 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 2346 { 2347 VULKAN_HPP_ASSERT( m_dispatcher.getVkHeaderVersion() == VK_HEADER_VERSION ); 2348 return &m_dispatcher; 2349 } 2350 2351 //=== VK_VERSION_1_0 === 2352 2353 VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT; 2354 2355 //=== VK_VERSION_1_1 === 2356 2357 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> 2358 enumeratePhysicalDeviceGroups() const; 2359 2360 //=== VK_EXT_debug_report === 2361 2362 void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, 2363 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, 2364 uint64_t object, 2365 size_t location, 2366 int32_t messageCode, 2367 const std::string & layerPrefix, 2368 const std::string & message ) const VULKAN_HPP_NOEXCEPT; 2369 2370 //=== VK_KHR_device_group_creation === 2371 2372 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> 2373 enumeratePhysicalDeviceGroupsKHR() const; 2374 2375 //=== VK_EXT_debug_utils === 2376 2377 void submitDebugUtilsMessageEXT( 2378 VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 2379 VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, 2380 const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT; 2381 2382 private: 2383 VULKAN_HPP_NAMESPACE::Instance m_instance; 2384 const VkAllocationCallbacks * m_allocator = nullptr; 2385 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher m_dispatcher = nullptr; 2386 }; 2387 2388 class PhysicalDevice 2389 { 2390 public: 2391 using CType = VkPhysicalDevice; 2392 2393 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 2394 VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice; 2395 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 2396 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice; 2397 2398 public: PhysicalDevice(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VkPhysicalDevice physicalDevice)2399 PhysicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 2400 VkPhysicalDevice physicalDevice ) 2401 : m_physicalDevice( physicalDevice ), m_dispatcher( instance.getDispatcher() ) 2402 {} 2403 PhysicalDevice(VkPhysicalDevice physicalDevice,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher)2404 PhysicalDevice( VkPhysicalDevice physicalDevice, 2405 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher ) 2406 : m_physicalDevice( physicalDevice ), m_dispatcher( dispatcher ) 2407 {} PhysicalDevice(std::nullptr_t)2408 PhysicalDevice( std::nullptr_t ) {} 2409 2410 PhysicalDevice() = delete; 2411 PhysicalDevice( PhysicalDevice const & ) = delete; PhysicalDevice(PhysicalDevice && rhs)2412 PhysicalDevice( PhysicalDevice && rhs ) VULKAN_HPP_NOEXCEPT 2413 : m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) ) 2414 , m_dispatcher( rhs.m_dispatcher ) 2415 {} 2416 PhysicalDevice & operator=( PhysicalDevice const & ) = delete; operator =(PhysicalDevice && rhs)2417 PhysicalDevice & operator =( PhysicalDevice && rhs ) VULKAN_HPP_NOEXCEPT 2418 { 2419 if ( this != &rhs ) 2420 { 2421 m_physicalDevice = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ); 2422 m_dispatcher = rhs.m_dispatcher; 2423 } 2424 return *this; 2425 } 2426 operator *() const2427 VULKAN_HPP_NAMESPACE::PhysicalDevice const & operator*() const VULKAN_HPP_NOEXCEPT 2428 { 2429 return m_physicalDevice; 2430 } 2431 getDispatcher() const2432 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 2433 { 2434 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 2435 return m_dispatcher; 2436 } 2437 2438 //=== VK_VERSION_1_0 === 2439 2440 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures() const VULKAN_HPP_NOEXCEPT; 2441 2442 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties 2443 getFormatProperties( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 2444 2445 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties getImageFormatProperties( 2446 VULKAN_HPP_NAMESPACE::Format format, 2447 VULKAN_HPP_NAMESPACE::ImageType type, 2448 VULKAN_HPP_NAMESPACE::ImageTiling tiling, 2449 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 2450 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 2451 2452 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties() const VULKAN_HPP_NOEXCEPT; 2453 2454 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> 2455 getQueueFamilyProperties() const VULKAN_HPP_NOEXCEPT; 2456 2457 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties 2458 getMemoryProperties() const VULKAN_HPP_NOEXCEPT; 2459 2460 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> enumerateDeviceExtensionProperties( 2461 Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 2462 2463 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> enumerateDeviceLayerProperties() const; 2464 2465 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties> 2466 getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, 2467 VULKAN_HPP_NAMESPACE::ImageType type, 2468 VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, 2469 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 2470 VULKAN_HPP_NAMESPACE::ImageTiling tiling ) const VULKAN_HPP_NOEXCEPT; 2471 2472 //=== VK_VERSION_1_1 === 2473 2474 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2() const VULKAN_HPP_NOEXCEPT; 2475 2476 template <typename X, typename Y, typename... Z> 2477 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2() const VULKAN_HPP_NOEXCEPT; 2478 2479 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2() const VULKAN_HPP_NOEXCEPT; 2480 2481 template <typename X, typename Y, typename... Z> 2482 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2() const VULKAN_HPP_NOEXCEPT; 2483 2484 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 2485 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 2486 2487 template <typename X, typename Y, typename... Z> 2488 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> 2489 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 2490 2491 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2 2492 getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; 2493 2494 template <typename X, typename Y, typename... Z> 2495 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> 2496 getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; 2497 2498 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> 2499 getQueueFamilyProperties2() const VULKAN_HPP_NOEXCEPT; 2500 2501 template <typename StructureChain> 2502 VULKAN_HPP_NODISCARD std::vector<StructureChain> getQueueFamilyProperties2() const; 2503 2504 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 2505 getMemoryProperties2() const VULKAN_HPP_NOEXCEPT; 2506 2507 template <typename X, typename Y, typename... Z> 2508 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2() const VULKAN_HPP_NOEXCEPT; 2509 2510 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> 2511 getSparseImageFormatProperties2( 2512 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const VULKAN_HPP_NOEXCEPT; 2513 2514 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( 2515 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT; 2516 2517 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( 2518 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT; 2519 2520 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( 2521 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const 2522 VULKAN_HPP_NOEXCEPT; 2523 2524 //=== VK_KHR_surface === 2525 2526 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 2527 getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 2528 2529 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR 2530 getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 2531 2532 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR> 2533 getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 2534 2535 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> 2536 getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 2537 2538 //=== VK_KHR_swapchain === 2539 2540 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::Rect2D> 2541 getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 2542 2543 //=== VK_KHR_display === 2544 2545 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> getDisplayPropertiesKHR() const; 2546 2547 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> 2548 getDisplayPlanePropertiesKHR() const; 2549 2550 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 2551 //=== VK_KHR_xlib_surface === 2552 2553 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getXlibPresentationSupportKHR( 2554 uint32_t queueFamilyIndex, Display & dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT; 2555 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 2556 2557 # if defined( VK_USE_PLATFORM_XCB_KHR ) 2558 //=== VK_KHR_xcb_surface === 2559 2560 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getXcbPresentationSupportKHR( 2561 uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT; 2562 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 2563 2564 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 2565 //=== VK_KHR_wayland_surface === 2566 2567 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 2568 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, 2569 struct wl_display & display ) const VULKAN_HPP_NOEXCEPT; 2570 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 2571 2572 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2573 //=== VK_KHR_win32_surface === 2574 2575 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 2576 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT; 2577 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2578 2579 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 2580 //=== VK_KHR_video_queue === 2581 2582 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR 2583 getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileKHR & videoProfile ) const; 2584 2585 template <typename X, typename Y, typename... Z> 2586 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> 2587 getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileKHR & videoProfile ) const; 2588 2589 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> getVideoFormatPropertiesKHR( 2590 const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const; 2591 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 2592 2593 //=== VK_NV_external_memory_capabilities === 2594 2595 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV getExternalImageFormatPropertiesNV( 2596 VULKAN_HPP_NAMESPACE::Format format, 2597 VULKAN_HPP_NAMESPACE::ImageType type, 2598 VULKAN_HPP_NAMESPACE::ImageTiling tiling, 2599 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 2600 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 2601 VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType 2602 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 2603 2604 //=== VK_KHR_get_physical_device_properties2 === 2605 2606 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR() const VULKAN_HPP_NOEXCEPT; 2607 2608 template <typename X, typename Y, typename... Z> 2609 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2KHR() const VULKAN_HPP_NOEXCEPT; 2610 2611 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 2612 getProperties2KHR() const VULKAN_HPP_NOEXCEPT; 2613 2614 template <typename X, typename Y, typename... Z> 2615 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2KHR() const VULKAN_HPP_NOEXCEPT; 2616 2617 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 2618 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 2619 2620 template <typename X, typename Y, typename... Z> 2621 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> 2622 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 2623 2624 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2 getImageFormatProperties2KHR( 2625 const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; 2626 2627 template <typename X, typename Y, typename... Z> 2628 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageFormatProperties2KHR( 2629 const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; 2630 2631 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> 2632 getQueueFamilyProperties2KHR() const VULKAN_HPP_NOEXCEPT; 2633 2634 template <typename StructureChain> 2635 VULKAN_HPP_NODISCARD std::vector<StructureChain> getQueueFamilyProperties2KHR() const; 2636 2637 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 2638 getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT; 2639 2640 template <typename X, typename Y, typename... Z> 2641 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT; 2642 2643 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> 2644 getSparseImageFormatProperties2KHR( 2645 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const VULKAN_HPP_NOEXCEPT; 2646 2647 //=== VK_KHR_external_memory_capabilities === 2648 2649 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( 2650 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT; 2651 2652 //=== VK_KHR_external_semaphore_capabilities === 2653 2654 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( 2655 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const 2656 VULKAN_HPP_NOEXCEPT; 2657 2658 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) 2659 //=== VK_EXT_acquire_xlib_display === 2660 2661 void acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; 2662 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 2663 2664 //=== VK_EXT_display_surface_counter === 2665 2666 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT 2667 getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 2668 2669 //=== VK_KHR_external_fence_capabilities === 2670 2671 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( 2672 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT; 2673 2674 //=== VK_KHR_performance_query === 2675 2676 VULKAN_HPP_NODISCARD std::pair<std::vector<PerformanceCounterKHR>, std::vector<PerformanceCounterDescriptionKHR>> 2677 enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const; 2678 2679 VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( 2680 const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo ) const 2681 VULKAN_HPP_NOEXCEPT; 2682 2683 //=== VK_KHR_get_surface_capabilities2 === 2684 2685 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR 2686 getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 2687 2688 template <typename X, typename Y, typename... Z> 2689 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> 2690 getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 2691 2692 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> 2693 getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 2694 2695 //=== VK_KHR_get_display_properties2 === 2696 2697 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> getDisplayProperties2KHR() const; 2698 2699 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> 2700 getDisplayPlaneProperties2KHR() const; 2701 2702 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR 2703 getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo ) const; 2704 2705 //=== VK_EXT_sample_locations === 2706 2707 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT 2708 getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT; 2709 2710 //=== VK_EXT_calibrated_timestamps === 2711 2712 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> getCalibrateableTimeDomainsEXT() const; 2713 2714 //=== VK_KHR_fragment_shading_rate === 2715 2716 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> 2717 getFragmentShadingRatesKHR() const; 2718 2719 //=== VK_EXT_tooling_info === 2720 2721 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT> 2722 getToolPropertiesEXT() const; 2723 2724 //=== VK_NV_cooperative_matrix === 2725 2726 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> 2727 getCooperativeMatrixPropertiesNV() const; 2728 2729 //=== VK_NV_coverage_reduction_mode === 2730 2731 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> 2732 getSupportedFramebufferMixedSamplesCombinationsNV() const; 2733 2734 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2735 //=== VK_EXT_full_screen_exclusive === 2736 2737 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> 2738 getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 2739 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2740 2741 //=== VK_EXT_acquire_drm_display === 2742 2743 void acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; 2744 2745 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 2746 //=== VK_EXT_directfb_surface === 2747 2748 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 2749 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb ) const VULKAN_HPP_NOEXCEPT; 2750 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 2751 2752 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 2753 //=== VK_QNX_screen_surface === 2754 2755 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 2756 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, 2757 struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT; 2758 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 2759 2760 private: 2761 VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice; 2762 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 2763 }; 2764 2765 class PhysicalDevices : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> 2766 { 2767 public: PhysicalDevices(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance)2768 PhysicalDevices( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance ) 2769 { 2770 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher = 2771 instance.getDispatcher(); 2772 std::vector<VkPhysicalDevice> physicalDevices; 2773 uint32_t physicalDeviceCount; 2774 VULKAN_HPP_NAMESPACE::Result result; 2775 do 2776 { 2777 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkEnumeratePhysicalDevices( 2778 static_cast<VkInstance>( *instance ), &physicalDeviceCount, nullptr ) ); 2779 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount ) 2780 { 2781 physicalDevices.resize( physicalDeviceCount ); 2782 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkEnumeratePhysicalDevices( 2783 static_cast<VkInstance>( *instance ), &physicalDeviceCount, physicalDevices.data() ) ); 2784 VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); 2785 } 2786 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 2787 if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) 2788 { 2789 this->reserve( physicalDeviceCount ); 2790 for ( auto const & physicalDevice : physicalDevices ) 2791 { 2792 this->emplace_back( physicalDevice, dispatcher ); 2793 } 2794 } 2795 else 2796 { 2797 throwResultException( result, "vkEnumeratePhysicalDevices" ); 2798 } 2799 } 2800 2801 PhysicalDevices() = delete; 2802 PhysicalDevices( PhysicalDevices const & ) = delete; 2803 PhysicalDevices( PhysicalDevices && rhs ) = default; 2804 PhysicalDevices & operator=( PhysicalDevices const & ) = delete; 2805 PhysicalDevices & operator=( PhysicalDevices && rhs ) = default; 2806 }; 2807 2808 class Device 2809 { 2810 public: 2811 using CType = VkDevice; 2812 2813 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 2814 VULKAN_HPP_NAMESPACE::ObjectType::eDevice; 2815 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 2816 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice; 2817 2818 public: Device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)2819 Device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 2820 VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & createInfo, 2821 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 2822 : m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 2823 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 2824 , m_dispatcher( physicalDevice.getDispatcher()->vkGetDeviceProcAddr ) 2825 { 2826 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 2827 physicalDevice.getDispatcher()->vkCreateDevice( static_cast<VkPhysicalDevice>( *physicalDevice ), 2828 reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ), 2829 m_allocator, 2830 reinterpret_cast<VkDevice *>( &m_device ) ) ); 2831 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 2832 { 2833 throwResultException( result, "vkCreateDevice" ); 2834 } 2835 m_dispatcher.init( static_cast<VkDevice>( m_device ) ); 2836 } 2837 Device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,VkDevice device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)2838 Device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 2839 VkDevice device, 2840 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 2841 : m_device( device ) 2842 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 2843 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 2844 , m_dispatcher( physicalDevice.getDispatcher()->vkGetDeviceProcAddr ) 2845 { 2846 m_dispatcher.init( static_cast<VkDevice>( m_device ) ); 2847 } 2848 Device(std::nullptr_t)2849 Device( std::nullptr_t ) {} 2850 ~Device()2851 ~Device() 2852 { 2853 if ( m_device ) 2854 { 2855 getDispatcher()->vkDestroyDevice( static_cast<VkDevice>( m_device ), m_allocator ); 2856 } 2857 } 2858 2859 Device() = delete; 2860 Device( Device const & ) = delete; Device(Device && rhs)2861 Device( Device && rhs ) VULKAN_HPP_NOEXCEPT 2862 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 2863 , m_allocator( rhs.m_allocator ) 2864 , m_dispatcher( rhs.m_dispatcher ) 2865 {} 2866 Device & operator=( Device const & ) = delete; operator =(Device && rhs)2867 Device & operator =( Device && rhs ) VULKAN_HPP_NOEXCEPT 2868 { 2869 if ( this != &rhs ) 2870 { 2871 if ( m_device ) 2872 { 2873 getDispatcher()->vkDestroyDevice( static_cast<VkDevice>( m_device ), m_allocator ); 2874 } 2875 m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ); 2876 m_allocator = rhs.m_allocator; 2877 m_dispatcher = rhs.m_dispatcher; 2878 } 2879 return *this; 2880 } 2881 operator *() const2882 VULKAN_HPP_NAMESPACE::Device const & operator*() const VULKAN_HPP_NOEXCEPT 2883 { 2884 return m_device; 2885 } 2886 getDispatcher() const2887 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 2888 { 2889 VULKAN_HPP_ASSERT( m_dispatcher.getVkHeaderVersion() == VK_HEADER_VERSION ); 2890 return &m_dispatcher; 2891 } 2892 2893 //=== VK_VERSION_1_0 === 2894 2895 VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT; 2896 2897 void waitIdle() const; 2898 2899 void 2900 flushMappedMemoryRanges( ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const; 2901 2902 void invalidateMappedMemoryRanges( 2903 ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const; 2904 2905 void resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences ) const; 2906 2907 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 2908 waitForFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, 2909 VULKAN_HPP_NAMESPACE::Bool32 waitAll, 2910 uint64_t timeout ) const; 2911 2912 void updateDescriptorSets( 2913 ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites, 2914 ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies ) const VULKAN_HPP_NOEXCEPT; 2915 2916 //=== VK_VERSION_1_1 === 2917 2918 void bindBufferMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const; 2919 2920 void bindImageMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const; 2921 2922 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( 2923 uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT; 2924 2925 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( 2926 const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 2927 2928 template <typename X, typename Y, typename... Z> 2929 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements2( 2930 const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 2931 2932 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( 2933 const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 2934 2935 template <typename X, typename Y, typename... Z> 2936 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements2( 2937 const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 2938 2939 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> 2940 getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const 2941 VULKAN_HPP_NOEXCEPT; 2942 2943 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( 2944 const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 2945 2946 template <typename X, typename Y, typename... Z> 2947 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport( 2948 const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 2949 2950 //=== VK_VERSION_1_2 === 2951 2952 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 2953 waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const; 2954 2955 void signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const; 2956 2957 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress 2958 getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 2959 2960 VULKAN_HPP_NODISCARD uint64_t getBufferOpaqueCaptureAddress( 2961 const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 2962 2963 VULKAN_HPP_NODISCARD uint64_t getMemoryOpaqueCaptureAddress( 2964 const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 2965 2966 //=== VK_KHR_swapchain === 2967 2968 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR 2969 getGroupPresentCapabilitiesKHR() const; 2970 2971 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR 2972 getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 2973 2974 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t> 2975 acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo ) const; 2976 2977 //=== VK_EXT_debug_marker === 2978 2979 void debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo ) const; 2980 2981 void debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo ) const; 2982 2983 //=== VK_NVX_image_view_handle === 2984 2985 VULKAN_HPP_NODISCARD uint32_t 2986 getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info ) const VULKAN_HPP_NOEXCEPT; 2987 2988 //=== VK_KHR_device_group === 2989 2990 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( 2991 uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT; 2992 2993 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2994 //=== VK_KHR_external_memory_win32 === 2995 2996 VULKAN_HPP_NODISCARD HANDLE 2997 getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const; 2998 2999 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR 3000 getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, 3001 HANDLE handle ) const; 3002 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3003 3004 //=== VK_KHR_external_memory_fd === 3005 3006 VULKAN_HPP_NODISCARD int getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo ) const; 3007 3008 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR 3009 getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const; 3010 3011 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 3012 //=== VK_KHR_external_semaphore_win32 === 3013 3014 void importSemaphoreWin32HandleKHR( 3015 const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const; 3016 3017 VULKAN_HPP_NODISCARD HANDLE getSemaphoreWin32HandleKHR( 3018 const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const; 3019 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3020 3021 //=== VK_KHR_external_semaphore_fd === 3022 3023 void importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const; 3024 3025 VULKAN_HPP_NODISCARD int getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo ) const; 3026 3027 //=== VK_KHR_descriptor_update_template === 3028 3029 void destroyDescriptorUpdateTemplateKHR( 3030 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 3031 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator 3032 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 3033 3034 //=== VK_EXT_display_control === 3035 3036 void displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, 3037 const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo ) const; 3038 3039 //=== VK_EXT_hdr_metadata === 3040 3041 void setHdrMetadataEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains, 3042 ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata ) const 3043 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 3044 3045 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 3046 //=== VK_KHR_external_fence_win32 === 3047 3048 void importFenceWin32HandleKHR( 3049 const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const; 3050 3051 VULKAN_HPP_NODISCARD HANDLE 3052 getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const; 3053 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3054 3055 //=== VK_KHR_external_fence_fd === 3056 3057 void importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo ) const; 3058 3059 VULKAN_HPP_NODISCARD int getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo ) const; 3060 3061 //=== VK_KHR_performance_query === 3062 3063 void acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info ) const; 3064 3065 void releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT; 3066 3067 //=== VK_EXT_debug_utils === 3068 3069 void setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo ) const; 3070 3071 void setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo ) const; 3072 3073 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 3074 //=== VK_ANDROID_external_memory_android_hardware_buffer === 3075 3076 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID 3077 getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; 3078 3079 template <typename X, typename Y, typename... Z> 3080 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> 3081 getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; 3082 3083 VULKAN_HPP_NODISCARD struct AHardwareBuffer * getMemoryAndroidHardwareBufferANDROID( 3084 const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info ) const; 3085 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 3086 3087 //=== VK_KHR_get_memory_requirements2 === 3088 3089 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( 3090 const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3091 3092 template <typename X, typename Y, typename... Z> 3093 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR( 3094 const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3095 3096 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( 3097 const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3098 3099 template <typename X, typename Y, typename... Z> 3100 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR( 3101 const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3102 3103 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> 3104 getImageSparseMemoryRequirements2KHR( 3105 const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3106 3107 //=== VK_KHR_acceleration_structure === 3108 3109 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result buildAccelerationStructuresKHR( 3110 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 3111 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 3112 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & 3113 pBuildRangeInfos ) const; 3114 3115 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 3116 copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 3117 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const; 3118 3119 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result copyAccelerationStructureToMemoryKHR( 3120 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 3121 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const; 3122 3123 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result copyMemoryToAccelerationStructureKHR( 3124 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 3125 const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const; 3126 3127 template <typename T> 3128 VULKAN_HPP_NODISCARD std::vector<T> writeAccelerationStructuresPropertiesKHR( 3129 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 3130 VULKAN_HPP_NAMESPACE::QueryType queryType, 3131 size_t dataSize, 3132 size_t stride ) const; 3133 3134 template <typename T> 3135 VULKAN_HPP_NODISCARD T writeAccelerationStructuresPropertyKHR( 3136 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 3137 VULKAN_HPP_NAMESPACE::QueryType queryType, 3138 size_t stride ) const; 3139 3140 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress getAccelerationStructureAddressKHR( 3141 const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 3142 3143 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR 3144 getAccelerationStructureCompatibilityKHR( 3145 const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo ) const VULKAN_HPP_NOEXCEPT; 3146 3147 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR 3148 getAccelerationStructureBuildSizesKHR( 3149 VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, 3150 const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR & buildInfo, 3151 ArrayProxy<const uint32_t> const & maxPrimitiveCounts VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const 3152 VULKAN_HPP_NOEXCEPT; 3153 3154 //=== VK_KHR_sampler_ycbcr_conversion === 3155 3156 void destroySamplerYcbcrConversionKHR( 3157 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 3158 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator 3159 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 3160 3161 //=== VK_KHR_bind_memory2 === 3162 3163 void bindBufferMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const; 3164 3165 void bindImageMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const; 3166 3167 //=== VK_NV_ray_tracing === 3168 3169 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( 3170 const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 3171 3172 template <typename X, typename Y, typename... Z> 3173 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( 3174 const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 3175 3176 void bindAccelerationStructureMemoryNV( 3177 ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos ) const; 3178 3179 //=== VK_KHR_maintenance3 === 3180 3181 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( 3182 const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 3183 3184 template <typename X, typename Y, typename... Z> 3185 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR( 3186 const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 3187 3188 //=== VK_EXT_external_memory_host === 3189 3190 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT 3191 getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, 3192 const void * pHostPointer ) const; 3193 3194 //=== VK_EXT_calibrated_timestamps === 3195 3196 VULKAN_HPP_NODISCARD std::pair<std::vector<uint64_t>, uint64_t> getCalibratedTimestampsEXT( 3197 ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos ) const; 3198 3199 VULKAN_HPP_NODISCARD std::pair<uint64_t, uint64_t> 3200 getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo ) const; 3201 3202 //=== VK_KHR_timeline_semaphore === 3203 3204 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 3205 waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const; 3206 3207 void signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const; 3208 3209 //=== VK_INTEL_performance_query === 3210 3211 void initializePerformanceApiINTEL( 3212 const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo ) const; 3213 3214 void uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT; 3215 3216 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PerformanceValueINTEL 3217 getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const; 3218 3219 //=== VK_EXT_buffer_device_address === 3220 3221 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress 3222 getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 3223 3224 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 3225 //=== VK_EXT_full_screen_exclusive === 3226 3227 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModes2EXT( 3228 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 3229 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3230 3231 //=== VK_KHR_buffer_device_address === 3232 3233 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress 3234 getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 3235 3236 VULKAN_HPP_NODISCARD uint64_t getBufferOpaqueCaptureAddressKHR( 3237 const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 3238 3239 VULKAN_HPP_NODISCARD uint64_t getMemoryOpaqueCaptureAddressKHR( 3240 const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 3241 3242 //=== VK_KHR_pipeline_executable_properties === 3243 3244 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR> 3245 getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo ) const; 3246 3247 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR> 3248 getPipelineExecutableStatisticsKHR( 3249 const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const; 3250 3251 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR> 3252 getPipelineExecutableInternalRepresentationsKHR( 3253 const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const; 3254 3255 //=== VK_NV_device_generated_commands === 3256 3257 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( 3258 const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 3259 3260 template <typename X, typename Y, typename... Z> 3261 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getGeneratedCommandsMemoryRequirementsNV( 3262 const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 3263 3264 //=== VK_EXT_private_data === 3265 3266 void setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 3267 uint64_t objectHandle, 3268 VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, 3269 uint64_t data ) const; 3270 3271 VULKAN_HPP_NODISCARD uint64_t 3272 getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 3273 uint64_t objectHandle, 3274 VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot ) const VULKAN_HPP_NOEXCEPT; 3275 3276 # if defined( VK_USE_PLATFORM_FUCHSIA ) 3277 //=== VK_FUCHSIA_external_memory === 3278 3279 VULKAN_HPP_NODISCARD zx_handle_t getMemoryZirconHandleFUCHSIA( 3280 const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; 3281 3282 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA 3283 getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, 3284 zx_handle_t zirconHandle ) const; 3285 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 3286 3287 # if defined( VK_USE_PLATFORM_FUCHSIA ) 3288 //=== VK_FUCHSIA_external_semaphore === 3289 3290 void importSemaphoreZirconHandleFUCHSIA( 3291 const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const; 3292 3293 VULKAN_HPP_NODISCARD zx_handle_t getSemaphoreZirconHandleFUCHSIA( 3294 const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; 3295 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 3296 3297 //=== VK_NV_external_memory_rdma === 3298 3299 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::RemoteAddressNV getMemoryRemoteAddressNV( 3300 const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const; 3301 3302 //=== VK_KHR_maintenance4 === 3303 3304 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirementsKHR( 3305 const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirementsKHR & info ) const VULKAN_HPP_NOEXCEPT; 3306 3307 template <typename X, typename Y, typename... Z> 3308 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getBufferMemoryRequirementsKHR( 3309 const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirementsKHR & info ) const VULKAN_HPP_NOEXCEPT; 3310 3311 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirementsKHR( 3312 const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info ) const VULKAN_HPP_NOEXCEPT; 3313 3314 template <typename X, typename Y, typename... Z> 3315 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getImageMemoryRequirementsKHR( 3316 const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info ) const VULKAN_HPP_NOEXCEPT; 3317 3318 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> 3319 getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info ) const 3320 VULKAN_HPP_NOEXCEPT; 3321 3322 private: 3323 VULKAN_HPP_NAMESPACE::Device m_device; 3324 const VkAllocationCallbacks * m_allocator = nullptr; 3325 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher m_dispatcher = nullptr; 3326 }; 3327 3328 class AccelerationStructureKHR 3329 { 3330 public: 3331 using CType = VkAccelerationStructureKHR; 3332 3333 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 3334 VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR; 3335 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3336 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR; 3337 3338 public: AccelerationStructureKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3339 AccelerationStructureKHR( 3340 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3341 VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & createInfo, 3342 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3343 : m_device( *device ) 3344 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3345 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3346 , m_dispatcher( device.getDispatcher() ) 3347 { 3348 VULKAN_HPP_NAMESPACE::Result result = 3349 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAccelerationStructureKHR( 3350 static_cast<VkDevice>( *device ), 3351 reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ), 3352 m_allocator, 3353 reinterpret_cast<VkAccelerationStructureKHR *>( &m_accelerationStructureKHR ) ) ); 3354 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 3355 { 3356 throwResultException( result, "vkCreateAccelerationStructureKHR" ); 3357 } 3358 } 3359 AccelerationStructureKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkAccelerationStructureKHR accelerationStructureKHR,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3360 AccelerationStructureKHR( 3361 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3362 VkAccelerationStructureKHR accelerationStructureKHR, 3363 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3364 : m_accelerationStructureKHR( accelerationStructureKHR ) 3365 , m_device( *device ) 3366 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3367 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3368 , m_dispatcher( device.getDispatcher() ) 3369 {} 3370 AccelerationStructureKHR(std::nullptr_t)3371 AccelerationStructureKHR( std::nullptr_t ) {} 3372 ~AccelerationStructureKHR()3373 ~AccelerationStructureKHR() 3374 { 3375 if ( m_accelerationStructureKHR ) 3376 { 3377 getDispatcher()->vkDestroyAccelerationStructureKHR( 3378 m_device, static_cast<VkAccelerationStructureKHR>( m_accelerationStructureKHR ), m_allocator ); 3379 } 3380 } 3381 3382 AccelerationStructureKHR() = delete; 3383 AccelerationStructureKHR( AccelerationStructureKHR const & ) = delete; AccelerationStructureKHR(AccelerationStructureKHR && rhs)3384 AccelerationStructureKHR( AccelerationStructureKHR && rhs ) VULKAN_HPP_NOEXCEPT 3385 : m_accelerationStructureKHR( 3386 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureKHR, {} ) ) 3387 , m_device( rhs.m_device ) 3388 , m_allocator( rhs.m_allocator ) 3389 , m_dispatcher( rhs.m_dispatcher ) 3390 {} 3391 AccelerationStructureKHR & operator=( AccelerationStructureKHR const & ) = delete; operator =(AccelerationStructureKHR && rhs)3392 AccelerationStructureKHR & operator=( AccelerationStructureKHR && rhs ) VULKAN_HPP_NOEXCEPT 3393 { 3394 if ( this != &rhs ) 3395 { 3396 if ( m_accelerationStructureKHR ) 3397 { 3398 getDispatcher()->vkDestroyAccelerationStructureKHR( 3399 m_device, static_cast<VkAccelerationStructureKHR>( m_accelerationStructureKHR ), m_allocator ); 3400 } 3401 m_accelerationStructureKHR = 3402 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureKHR, {} ); 3403 m_device = rhs.m_device; 3404 m_allocator = rhs.m_allocator; 3405 m_dispatcher = rhs.m_dispatcher; 3406 } 3407 return *this; 3408 } 3409 operator *() const3410 VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & operator*() const VULKAN_HPP_NOEXCEPT 3411 { 3412 return m_accelerationStructureKHR; 3413 } 3414 getDispatcher() const3415 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 3416 { 3417 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 3418 return m_dispatcher; 3419 } 3420 3421 private: 3422 VULKAN_HPP_NAMESPACE::AccelerationStructureKHR m_accelerationStructureKHR; 3423 VkDevice m_device; 3424 const VkAllocationCallbacks * m_allocator = nullptr; 3425 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 3426 }; 3427 3428 class AccelerationStructureNV 3429 { 3430 public: 3431 using CType = VkAccelerationStructureNV; 3432 3433 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 3434 VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV; 3435 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3436 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV; 3437 3438 public: AccelerationStructureNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3439 AccelerationStructureNV( 3440 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3441 VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & createInfo, 3442 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3443 : m_device( *device ) 3444 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3445 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3446 , m_dispatcher( device.getDispatcher() ) 3447 { 3448 VULKAN_HPP_NAMESPACE::Result result = 3449 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAccelerationStructureNV( 3450 static_cast<VkDevice>( *device ), 3451 reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ), 3452 m_allocator, 3453 reinterpret_cast<VkAccelerationStructureNV *>( &m_accelerationStructureNV ) ) ); 3454 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 3455 { 3456 throwResultException( result, "vkCreateAccelerationStructureNV" ); 3457 } 3458 } 3459 AccelerationStructureNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkAccelerationStructureNV accelerationStructureNV,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3460 AccelerationStructureNV( 3461 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3462 VkAccelerationStructureNV accelerationStructureNV, 3463 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3464 : m_accelerationStructureNV( accelerationStructureNV ) 3465 , m_device( *device ) 3466 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3467 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3468 , m_dispatcher( device.getDispatcher() ) 3469 {} 3470 AccelerationStructureNV(std::nullptr_t)3471 AccelerationStructureNV( std::nullptr_t ) {} 3472 ~AccelerationStructureNV()3473 ~AccelerationStructureNV() 3474 { 3475 if ( m_accelerationStructureNV ) 3476 { 3477 getDispatcher()->vkDestroyAccelerationStructureNV( 3478 m_device, static_cast<VkAccelerationStructureNV>( m_accelerationStructureNV ), m_allocator ); 3479 } 3480 } 3481 3482 AccelerationStructureNV() = delete; 3483 AccelerationStructureNV( AccelerationStructureNV const & ) = delete; AccelerationStructureNV(AccelerationStructureNV && rhs)3484 AccelerationStructureNV( AccelerationStructureNV && rhs ) VULKAN_HPP_NOEXCEPT 3485 : m_accelerationStructureNV( 3486 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureNV, {} ) ) 3487 , m_device( rhs.m_device ) 3488 , m_allocator( rhs.m_allocator ) 3489 , m_dispatcher( rhs.m_dispatcher ) 3490 {} 3491 AccelerationStructureNV & operator=( AccelerationStructureNV const & ) = delete; operator =(AccelerationStructureNV && rhs)3492 AccelerationStructureNV & operator=( AccelerationStructureNV && rhs ) VULKAN_HPP_NOEXCEPT 3493 { 3494 if ( this != &rhs ) 3495 { 3496 if ( m_accelerationStructureNV ) 3497 { 3498 getDispatcher()->vkDestroyAccelerationStructureNV( 3499 m_device, static_cast<VkAccelerationStructureNV>( m_accelerationStructureNV ), m_allocator ); 3500 } 3501 m_accelerationStructureNV = 3502 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructureNV, {} ); 3503 m_device = rhs.m_device; 3504 m_allocator = rhs.m_allocator; 3505 m_dispatcher = rhs.m_dispatcher; 3506 } 3507 return *this; 3508 } 3509 operator *() const3510 VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & operator*() const VULKAN_HPP_NOEXCEPT 3511 { 3512 return m_accelerationStructureNV; 3513 } 3514 getDispatcher() const3515 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 3516 { 3517 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 3518 return m_dispatcher; 3519 } 3520 3521 //=== VK_NV_ray_tracing === 3522 3523 template <typename T> 3524 VULKAN_HPP_NODISCARD std::vector<T> getHandle( size_t dataSize ) const; 3525 3526 template <typename T> 3527 VULKAN_HPP_NODISCARD T getHandle() const; 3528 3529 private: 3530 VULKAN_HPP_NAMESPACE::AccelerationStructureNV m_accelerationStructureNV; 3531 VkDevice m_device; 3532 const VkAllocationCallbacks * m_allocator = nullptr; 3533 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 3534 }; 3535 3536 class Buffer 3537 { 3538 public: 3539 using CType = VkBuffer; 3540 3541 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 3542 VULKAN_HPP_NAMESPACE::ObjectType::eBuffer; 3543 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3544 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer; 3545 3546 public: Buffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3547 Buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3548 VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo, 3549 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3550 : m_device( *device ) 3551 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3552 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3553 , m_dispatcher( device.getDispatcher() ) 3554 { 3555 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 3556 getDispatcher()->vkCreateBuffer( static_cast<VkDevice>( *device ), 3557 reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ), 3558 m_allocator, 3559 reinterpret_cast<VkBuffer *>( &m_buffer ) ) ); 3560 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 3561 { 3562 throwResultException( result, "vkCreateBuffer" ); 3563 } 3564 } 3565 Buffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkBuffer buffer,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3566 Buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3567 VkBuffer buffer, 3568 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3569 : m_buffer( buffer ) 3570 , m_device( *device ) 3571 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3572 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3573 , m_dispatcher( device.getDispatcher() ) 3574 {} 3575 Buffer(std::nullptr_t)3576 Buffer( std::nullptr_t ) {} 3577 ~Buffer()3578 ~Buffer() 3579 { 3580 if ( m_buffer ) 3581 { 3582 getDispatcher()->vkDestroyBuffer( m_device, static_cast<VkBuffer>( m_buffer ), m_allocator ); 3583 } 3584 } 3585 3586 Buffer() = delete; 3587 Buffer( Buffer const & ) = delete; Buffer(Buffer && rhs)3588 Buffer( Buffer && rhs ) VULKAN_HPP_NOEXCEPT 3589 : m_buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} ) ) 3590 , m_device( rhs.m_device ) 3591 , m_allocator( rhs.m_allocator ) 3592 , m_dispatcher( rhs.m_dispatcher ) 3593 {} 3594 Buffer & operator=( Buffer const & ) = delete; operator =(Buffer && rhs)3595 Buffer & operator =( Buffer && rhs ) VULKAN_HPP_NOEXCEPT 3596 { 3597 if ( this != &rhs ) 3598 { 3599 if ( m_buffer ) 3600 { 3601 getDispatcher()->vkDestroyBuffer( m_device, static_cast<VkBuffer>( m_buffer ), m_allocator ); 3602 } 3603 m_buffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} ); 3604 m_device = rhs.m_device; 3605 m_allocator = rhs.m_allocator; 3606 m_dispatcher = rhs.m_dispatcher; 3607 } 3608 return *this; 3609 } 3610 operator *() const3611 VULKAN_HPP_NAMESPACE::Buffer const & operator*() const VULKAN_HPP_NOEXCEPT 3612 { 3613 return m_buffer; 3614 } 3615 getDispatcher() const3616 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 3617 { 3618 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 3619 return m_dispatcher; 3620 } 3621 3622 //=== VK_VERSION_1_0 === 3623 3624 void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const; 3625 3626 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT; 3627 3628 private: 3629 VULKAN_HPP_NAMESPACE::Buffer m_buffer; 3630 VkDevice m_device; 3631 const VkAllocationCallbacks * m_allocator = nullptr; 3632 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 3633 }; 3634 3635 # if defined( VK_USE_PLATFORM_FUCHSIA ) 3636 class BufferCollectionFUCHSIA 3637 { 3638 public: 3639 using CType = VkBufferCollectionFUCHSIA; 3640 3641 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 3642 VULKAN_HPP_NAMESPACE::ObjectType::eBufferCollectionFUCHSIA; 3643 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3644 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA; 3645 3646 public: BufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3647 BufferCollectionFUCHSIA( 3648 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3649 VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const & createInfo, 3650 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3651 : m_device( *device ) 3652 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3653 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3654 , m_dispatcher( device.getDispatcher() ) 3655 { 3656 VULKAN_HPP_NAMESPACE::Result result = 3657 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateBufferCollectionFUCHSIA( 3658 static_cast<VkDevice>( *device ), 3659 reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ), 3660 m_allocator, 3661 reinterpret_cast<VkBufferCollectionFUCHSIA *>( &m_bufferCollectionFUCHSIA ) ) ); 3662 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 3663 { 3664 throwResultException( result, "vkCreateBufferCollectionFUCHSIA" ); 3665 } 3666 } 3667 BufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkBufferCollectionFUCHSIA bufferCollectionFUCHSIA,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3668 BufferCollectionFUCHSIA( 3669 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3670 VkBufferCollectionFUCHSIA bufferCollectionFUCHSIA, 3671 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3672 : m_bufferCollectionFUCHSIA( bufferCollectionFUCHSIA ) 3673 , m_device( *device ) 3674 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3675 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3676 , m_dispatcher( device.getDispatcher() ) 3677 {} 3678 BufferCollectionFUCHSIA(std::nullptr_t)3679 BufferCollectionFUCHSIA( std::nullptr_t ) {} 3680 ~BufferCollectionFUCHSIA()3681 ~BufferCollectionFUCHSIA() 3682 { 3683 if ( m_bufferCollectionFUCHSIA ) 3684 { 3685 getDispatcher()->vkDestroyBufferCollectionFUCHSIA( 3686 m_device, static_cast<VkBufferCollectionFUCHSIA>( m_bufferCollectionFUCHSIA ), m_allocator ); 3687 } 3688 } 3689 3690 BufferCollectionFUCHSIA() = delete; 3691 BufferCollectionFUCHSIA( BufferCollectionFUCHSIA const & ) = delete; BufferCollectionFUCHSIA(BufferCollectionFUCHSIA && rhs)3692 BufferCollectionFUCHSIA( BufferCollectionFUCHSIA && rhs ) VULKAN_HPP_NOEXCEPT 3693 : m_bufferCollectionFUCHSIA( 3694 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferCollectionFUCHSIA, {} ) ) 3695 , m_device( rhs.m_device ) 3696 , m_allocator( rhs.m_allocator ) 3697 , m_dispatcher( rhs.m_dispatcher ) 3698 {} 3699 BufferCollectionFUCHSIA & operator=( BufferCollectionFUCHSIA const & ) = delete; operator =(BufferCollectionFUCHSIA && rhs)3700 BufferCollectionFUCHSIA & operator=( BufferCollectionFUCHSIA && rhs ) VULKAN_HPP_NOEXCEPT 3701 { 3702 if ( this != &rhs ) 3703 { 3704 if ( m_bufferCollectionFUCHSIA ) 3705 { 3706 getDispatcher()->vkDestroyBufferCollectionFUCHSIA( 3707 m_device, static_cast<VkBufferCollectionFUCHSIA>( m_bufferCollectionFUCHSIA ), m_allocator ); 3708 } 3709 m_bufferCollectionFUCHSIA = 3710 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferCollectionFUCHSIA, {} ); 3711 m_device = rhs.m_device; 3712 m_allocator = rhs.m_allocator; 3713 m_dispatcher = rhs.m_dispatcher; 3714 } 3715 return *this; 3716 } 3717 operator *() const3718 VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const & operator*() const VULKAN_HPP_NOEXCEPT 3719 { 3720 return m_bufferCollectionFUCHSIA; 3721 } 3722 getDispatcher() const3723 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 3724 { 3725 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 3726 return m_dispatcher; 3727 } 3728 3729 //=== VK_FUCHSIA_buffer_collection === 3730 3731 void setImageConstraints( const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const; 3732 3733 void 3734 setBufferConstraints( const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const; 3735 3736 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA getProperties() const; 3737 3738 private: 3739 VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA m_bufferCollectionFUCHSIA; 3740 VkDevice m_device; 3741 const VkAllocationCallbacks * m_allocator = nullptr; 3742 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 3743 }; 3744 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 3745 3746 class BufferView 3747 { 3748 public: 3749 using CType = VkBufferView; 3750 3751 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 3752 VULKAN_HPP_NAMESPACE::ObjectType::eBufferView; 3753 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3754 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView; 3755 3756 public: BufferView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3757 BufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3758 VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & createInfo, 3759 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3760 : m_device( *device ) 3761 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3762 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3763 , m_dispatcher( device.getDispatcher() ) 3764 { 3765 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 3766 getDispatcher()->vkCreateBufferView( static_cast<VkDevice>( *device ), 3767 reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ), 3768 m_allocator, 3769 reinterpret_cast<VkBufferView *>( &m_bufferView ) ) ); 3770 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 3771 { 3772 throwResultException( result, "vkCreateBufferView" ); 3773 } 3774 } 3775 BufferView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkBufferView bufferView,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3776 BufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3777 VkBufferView bufferView, 3778 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3779 : m_bufferView( bufferView ) 3780 , m_device( *device ) 3781 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3782 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3783 , m_dispatcher( device.getDispatcher() ) 3784 {} 3785 BufferView(std::nullptr_t)3786 BufferView( std::nullptr_t ) {} 3787 ~BufferView()3788 ~BufferView() 3789 { 3790 if ( m_bufferView ) 3791 { 3792 getDispatcher()->vkDestroyBufferView( m_device, static_cast<VkBufferView>( m_bufferView ), m_allocator ); 3793 } 3794 } 3795 3796 BufferView() = delete; 3797 BufferView( BufferView const & ) = delete; BufferView(BufferView && rhs)3798 BufferView( BufferView && rhs ) VULKAN_HPP_NOEXCEPT 3799 : m_bufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} ) ) 3800 , m_device( rhs.m_device ) 3801 , m_allocator( rhs.m_allocator ) 3802 , m_dispatcher( rhs.m_dispatcher ) 3803 {} 3804 BufferView & operator=( BufferView const & ) = delete; operator =(BufferView && rhs)3805 BufferView & operator =( BufferView && rhs ) VULKAN_HPP_NOEXCEPT 3806 { 3807 if ( this != &rhs ) 3808 { 3809 if ( m_bufferView ) 3810 { 3811 getDispatcher()->vkDestroyBufferView( m_device, static_cast<VkBufferView>( m_bufferView ), m_allocator ); 3812 } 3813 m_bufferView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} ); 3814 m_device = rhs.m_device; 3815 m_allocator = rhs.m_allocator; 3816 m_dispatcher = rhs.m_dispatcher; 3817 } 3818 return *this; 3819 } 3820 operator *() const3821 VULKAN_HPP_NAMESPACE::BufferView const & operator*() const VULKAN_HPP_NOEXCEPT 3822 { 3823 return m_bufferView; 3824 } 3825 getDispatcher() const3826 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 3827 { 3828 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 3829 return m_dispatcher; 3830 } 3831 3832 private: 3833 VULKAN_HPP_NAMESPACE::BufferView m_bufferView; 3834 VkDevice m_device; 3835 const VkAllocationCallbacks * m_allocator = nullptr; 3836 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 3837 }; 3838 3839 class CommandPool 3840 { 3841 public: 3842 using CType = VkCommandPool; 3843 3844 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 3845 VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool; 3846 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3847 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool; 3848 3849 public: CommandPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3850 CommandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3851 VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & createInfo, 3852 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3853 : m_device( *device ) 3854 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3855 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3856 , m_dispatcher( device.getDispatcher() ) 3857 { 3858 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 3859 getDispatcher()->vkCreateCommandPool( static_cast<VkDevice>( *device ), 3860 reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ), 3861 m_allocator, 3862 reinterpret_cast<VkCommandPool *>( &m_commandPool ) ) ); 3863 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 3864 { 3865 throwResultException( result, "vkCreateCommandPool" ); 3866 } 3867 } 3868 CommandPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCommandPool commandPool,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3869 CommandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3870 VkCommandPool commandPool, 3871 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3872 : m_commandPool( commandPool ) 3873 , m_device( *device ) 3874 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 3875 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 3876 , m_dispatcher( device.getDispatcher() ) 3877 {} 3878 CommandPool(std::nullptr_t)3879 CommandPool( std::nullptr_t ) {} 3880 ~CommandPool()3881 ~CommandPool() 3882 { 3883 if ( m_commandPool ) 3884 { 3885 getDispatcher()->vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( m_commandPool ), m_allocator ); 3886 } 3887 } 3888 3889 CommandPool() = delete; 3890 CommandPool( CommandPool const & ) = delete; CommandPool(CommandPool && rhs)3891 CommandPool( CommandPool && rhs ) VULKAN_HPP_NOEXCEPT 3892 : m_commandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ) ) 3893 , m_device( rhs.m_device ) 3894 , m_allocator( rhs.m_allocator ) 3895 , m_dispatcher( rhs.m_dispatcher ) 3896 {} 3897 CommandPool & operator=( CommandPool const & ) = delete; operator =(CommandPool && rhs)3898 CommandPool & operator =( CommandPool && rhs ) VULKAN_HPP_NOEXCEPT 3899 { 3900 if ( this != &rhs ) 3901 { 3902 if ( m_commandPool ) 3903 { 3904 getDispatcher()->vkDestroyCommandPool( m_device, static_cast<VkCommandPool>( m_commandPool ), m_allocator ); 3905 } 3906 m_commandPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ); 3907 m_device = rhs.m_device; 3908 m_allocator = rhs.m_allocator; 3909 m_dispatcher = rhs.m_dispatcher; 3910 } 3911 return *this; 3912 } 3913 operator *() const3914 VULKAN_HPP_NAMESPACE::CommandPool const & operator*() const VULKAN_HPP_NOEXCEPT 3915 { 3916 return m_commandPool; 3917 } 3918 getDispatcher() const3919 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 3920 { 3921 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 3922 return m_dispatcher; 3923 } 3924 3925 //=== VK_VERSION_1_0 === 3926 3927 void reset( VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 3928 3929 //=== VK_VERSION_1_1 === 3930 3931 void trim( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const 3932 VULKAN_HPP_NOEXCEPT; 3933 3934 //=== VK_KHR_maintenance1 === 3935 3936 void trimKHR( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const 3937 VULKAN_HPP_NOEXCEPT; 3938 3939 private: 3940 VULKAN_HPP_NAMESPACE::CommandPool m_commandPool; 3941 VkDevice m_device; 3942 const VkAllocationCallbacks * m_allocator = nullptr; 3943 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 3944 }; 3945 3946 class CommandBuffer 3947 { 3948 public: 3949 using CType = VkCommandBuffer; 3950 3951 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 3952 VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer; 3953 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3954 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer; 3955 3956 public: CommandBuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCommandBuffer commandBuffer,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool const & commandPool)3957 CommandBuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 3958 VkCommandBuffer commandBuffer, 3959 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool const & commandPool ) 3960 : m_commandBuffer( commandBuffer ) 3961 , m_device( *device ) 3962 , m_commandPool( *commandPool ) 3963 , m_dispatcher( device.getDispatcher() ) 3964 {} 3965 CommandBuffer(VkCommandBuffer commandBuffer,VkDevice device,VkCommandPool commandPool,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher)3966 CommandBuffer( VkCommandBuffer commandBuffer, 3967 VkDevice device, 3968 VkCommandPool commandPool, 3969 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher ) 3970 : m_commandBuffer( commandBuffer ), m_device( device ), m_commandPool( commandPool ), m_dispatcher( dispatcher ) 3971 {} CommandBuffer(std::nullptr_t)3972 CommandBuffer( std::nullptr_t ) {} 3973 ~CommandBuffer()3974 ~CommandBuffer() 3975 { 3976 if ( m_commandBuffer ) 3977 { 3978 getDispatcher()->vkFreeCommandBuffers( 3979 m_device, m_commandPool, 1, reinterpret_cast<VkCommandBuffer const *>( &m_commandBuffer ) ); 3980 } 3981 } 3982 3983 CommandBuffer() = delete; 3984 CommandBuffer( CommandBuffer const & ) = delete; CommandBuffer(CommandBuffer && rhs)3985 CommandBuffer( CommandBuffer && rhs ) VULKAN_HPP_NOEXCEPT 3986 : m_commandBuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandBuffer, {} ) ) 3987 , m_device( rhs.m_device ) 3988 , m_commandPool( rhs.m_commandPool ) 3989 , m_dispatcher( rhs.m_dispatcher ) 3990 {} 3991 CommandBuffer & operator=( CommandBuffer const & ) = delete; operator =(CommandBuffer && rhs)3992 CommandBuffer & operator =( CommandBuffer && rhs ) VULKAN_HPP_NOEXCEPT 3993 { 3994 if ( this != &rhs ) 3995 { 3996 if ( m_commandBuffer ) 3997 { 3998 getDispatcher()->vkFreeCommandBuffers( 3999 m_device, m_commandPool, 1, reinterpret_cast<VkCommandBuffer const *>( &m_commandBuffer ) ); 4000 } 4001 m_commandBuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandBuffer, {} ); 4002 m_device = rhs.m_device; 4003 m_commandPool = rhs.m_commandPool; 4004 m_dispatcher = rhs.m_dispatcher; 4005 } 4006 return *this; 4007 } 4008 operator *() const4009 VULKAN_HPP_NAMESPACE::CommandBuffer const & operator*() const VULKAN_HPP_NOEXCEPT 4010 { 4011 return m_commandBuffer; 4012 } 4013 getDispatcher() const4014 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 4015 { 4016 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 4017 return m_dispatcher; 4018 } 4019 4020 //=== VK_VERSION_1_0 === 4021 4022 void begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo ) const; 4023 4024 void end() const; 4025 4026 void reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 4027 4028 void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 4029 VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT; 4030 4031 void setViewport( uint32_t firstViewport, 4032 ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT; 4033 4034 void setScissor( uint32_t firstScissor, 4035 ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT; 4036 4037 void setLineWidth( float lineWidth ) const VULKAN_HPP_NOEXCEPT; 4038 4039 void setDepthBias( float depthBiasConstantFactor, 4040 float depthBiasClamp, 4041 float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT; 4042 4043 void setBlendConstants( const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT; 4044 4045 void setDepthBounds( float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT; 4046 4047 void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 4048 uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT; 4049 4050 void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 4051 uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT; 4052 4053 void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 4054 uint32_t reference ) const VULKAN_HPP_NOEXCEPT; 4055 4056 void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 4057 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 4058 uint32_t firstSet, 4059 ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, 4060 ArrayProxy<const uint32_t> const & dynamicOffsets ) const VULKAN_HPP_NOEXCEPT; 4061 4062 void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, 4063 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4064 VULKAN_HPP_NAMESPACE::IndexType indexType ) const VULKAN_HPP_NOEXCEPT; 4065 4066 void bindVertexBuffers( uint32_t firstBinding, 4067 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 4068 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets ) const 4069 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 4070 4071 void draw( uint32_t vertexCount, 4072 uint32_t instanceCount, 4073 uint32_t firstVertex, 4074 uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT; 4075 4076 void drawIndexed( uint32_t indexCount, 4077 uint32_t instanceCount, 4078 uint32_t firstIndex, 4079 int32_t vertexOffset, 4080 uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT; 4081 4082 void drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 4083 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4084 uint32_t drawCount, 4085 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4086 4087 void drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 4088 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4089 uint32_t drawCount, 4090 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4091 4092 void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT; 4093 4094 void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 4095 VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT; 4096 4097 void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, 4098 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 4099 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions ) const VULKAN_HPP_NOEXCEPT; 4100 4101 void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, 4102 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 4103 VULKAN_HPP_NAMESPACE::Image dstImage, 4104 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 4105 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT; 4106 4107 void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, 4108 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 4109 VULKAN_HPP_NAMESPACE::Image dstImage, 4110 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 4111 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions, 4112 VULKAN_HPP_NAMESPACE::Filter filter ) const VULKAN_HPP_NOEXCEPT; 4113 4114 void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, 4115 VULKAN_HPP_NAMESPACE::Image dstImage, 4116 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 4117 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const 4118 VULKAN_HPP_NOEXCEPT; 4119 4120 void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, 4121 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 4122 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 4123 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const 4124 VULKAN_HPP_NOEXCEPT; 4125 4126 template <typename T> 4127 void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 4128 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 4129 ArrayProxy<const T> const & data ) const VULKAN_HPP_NOEXCEPT; 4130 4131 void fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 4132 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 4133 VULKAN_HPP_NAMESPACE::DeviceSize size, 4134 uint32_t data ) const VULKAN_HPP_NOEXCEPT; 4135 4136 void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, 4137 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, 4138 const VULKAN_HPP_NAMESPACE::ClearColorValue & color, 4139 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const 4140 VULKAN_HPP_NOEXCEPT; 4141 4142 void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, 4143 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, 4144 const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue & depthStencil, 4145 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const 4146 VULKAN_HPP_NOEXCEPT; 4147 4148 void 4149 clearAttachments( ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments, 4150 ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects ) const VULKAN_HPP_NOEXCEPT; 4151 4152 void 4153 resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, 4154 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 4155 VULKAN_HPP_NAMESPACE::Image dstImage, 4156 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 4157 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions ) const VULKAN_HPP_NOEXCEPT; 4158 4159 void setEvent( VULKAN_HPP_NAMESPACE::Event event, 4160 VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask 4161 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 4162 4163 void resetEvent( VULKAN_HPP_NAMESPACE::Event event, 4164 VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask 4165 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 4166 4167 void waitEvents( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 4168 VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, 4169 VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, 4170 ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, 4171 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, 4172 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers ) const 4173 VULKAN_HPP_NOEXCEPT; 4174 4175 void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, 4176 VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, 4177 VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, 4178 ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, 4179 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, 4180 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers ) 4181 const VULKAN_HPP_NOEXCEPT; 4182 4183 void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4184 uint32_t query, 4185 VULKAN_HPP_NAMESPACE::QueryControlFlags flags 4186 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 4187 4188 void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT; 4189 4190 void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4191 uint32_t firstQuery, 4192 uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT; 4193 4194 void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, 4195 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4196 uint32_t query ) const VULKAN_HPP_NOEXCEPT; 4197 4198 void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4199 uint32_t firstQuery, 4200 uint32_t queryCount, 4201 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 4202 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 4203 VULKAN_HPP_NAMESPACE::DeviceSize stride, 4204 VULKAN_HPP_NAMESPACE::QueryResultFlags flags 4205 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 4206 4207 template <typename T> 4208 void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, 4209 VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, 4210 uint32_t offset, 4211 ArrayProxy<const T> const & values ) const VULKAN_HPP_NOEXCEPT; 4212 4213 void beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 4214 VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT; 4215 4216 void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT; 4217 4218 void endRenderPass() const VULKAN_HPP_NOEXCEPT; 4219 4220 void executeCommands( ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers ) const 4221 VULKAN_HPP_NOEXCEPT; 4222 4223 //=== VK_VERSION_1_1 === 4224 4225 void setDeviceMask( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT; 4226 4227 void dispatchBase( uint32_t baseGroupX, 4228 uint32_t baseGroupY, 4229 uint32_t baseGroupZ, 4230 uint32_t groupCountX, 4231 uint32_t groupCountY, 4232 uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT; 4233 4234 //=== VK_VERSION_1_2 === 4235 4236 void drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, 4237 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4238 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 4239 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 4240 uint32_t maxDrawCount, 4241 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4242 4243 void drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, 4244 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4245 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 4246 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 4247 uint32_t maxDrawCount, 4248 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4249 4250 void 4251 beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 4252 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT; 4253 4254 void nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo, 4255 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; 4256 4257 void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; 4258 4259 //=== VK_EXT_debug_marker === 4260 4261 void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const 4262 VULKAN_HPP_NOEXCEPT; 4263 4264 void debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT; 4265 4266 void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const 4267 VULKAN_HPP_NOEXCEPT; 4268 4269 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 4270 //=== VK_KHR_video_queue === 4271 4272 void beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo ) const 4273 VULKAN_HPP_NOEXCEPT; 4274 4275 void endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo ) const 4276 VULKAN_HPP_NOEXCEPT; 4277 4278 void controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo ) const 4279 VULKAN_HPP_NOEXCEPT; 4280 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 4281 4282 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 4283 //=== VK_KHR_video_decode_queue === 4284 4285 void decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & frameInfo ) const VULKAN_HPP_NOEXCEPT; 4286 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 4287 4288 //=== VK_EXT_transform_feedback === 4289 4290 void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, 4291 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 4292 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 4293 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes 4294 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const 4295 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 4296 4297 void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, 4298 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, 4299 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets 4300 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const 4301 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 4302 4303 void endTransformFeedbackEXT( uint32_t firstCounterBuffer, 4304 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, 4305 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets 4306 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const 4307 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 4308 4309 void beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4310 uint32_t query, 4311 VULKAN_HPP_NAMESPACE::QueryControlFlags flags, 4312 uint32_t index ) const VULKAN_HPP_NOEXCEPT; 4313 4314 void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4315 uint32_t query, 4316 uint32_t index ) const VULKAN_HPP_NOEXCEPT; 4317 4318 void drawIndirectByteCountEXT( uint32_t instanceCount, 4319 uint32_t firstInstance, 4320 VULKAN_HPP_NAMESPACE::Buffer counterBuffer, 4321 VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, 4322 uint32_t counterOffset, 4323 uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT; 4324 4325 //=== VK_NVX_binary_import === 4326 4327 void cuLaunchKernelNVX( const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo ) const VULKAN_HPP_NOEXCEPT; 4328 4329 //=== VK_AMD_draw_indirect_count === 4330 4331 void drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, 4332 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4333 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 4334 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 4335 uint32_t maxDrawCount, 4336 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4337 4338 void drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, 4339 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4340 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 4341 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 4342 uint32_t maxDrawCount, 4343 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4344 4345 //=== VK_KHR_device_group === 4346 4347 void setDeviceMaskKHR( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT; 4348 4349 void dispatchBaseKHR( uint32_t baseGroupX, 4350 uint32_t baseGroupY, 4351 uint32_t baseGroupZ, 4352 uint32_t groupCountX, 4353 uint32_t groupCountY, 4354 uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT; 4355 4356 //=== VK_KHR_push_descriptor === 4357 4358 void pushDescriptorSetKHR( 4359 VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 4360 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 4361 uint32_t set, 4362 ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites ) const VULKAN_HPP_NOEXCEPT; 4363 4364 void pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 4365 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 4366 uint32_t set, 4367 const void * pData ) const VULKAN_HPP_NOEXCEPT; 4368 4369 //=== VK_EXT_conditional_rendering === 4370 4371 void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & 4372 conditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT; 4373 4374 void endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT; 4375 4376 //=== VK_NV_clip_space_w_scaling === 4377 4378 void setViewportWScalingNV( uint32_t firstViewport, 4379 ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings ) 4380 const VULKAN_HPP_NOEXCEPT; 4381 4382 //=== VK_EXT_discard_rectangles === 4383 4384 void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, 4385 ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles ) const 4386 VULKAN_HPP_NOEXCEPT; 4387 4388 //=== VK_KHR_create_renderpass2 === 4389 4390 void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 4391 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo ) const 4392 VULKAN_HPP_NOEXCEPT; 4393 4394 void nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo, 4395 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; 4396 4397 void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; 4398 4399 //=== VK_EXT_debug_utils === 4400 4401 void 4402 beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; 4403 4404 void endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT; 4405 4406 void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const 4407 VULKAN_HPP_NOEXCEPT; 4408 4409 //=== VK_EXT_sample_locations === 4410 4411 void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo ) const 4412 VULKAN_HPP_NOEXCEPT; 4413 4414 //=== VK_KHR_acceleration_structure === 4415 4416 void buildAccelerationStructuresKHR( 4417 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 4418 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & 4419 pBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 4420 4421 void buildAccelerationStructuresIndirectKHR( 4422 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 4423 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses, 4424 ArrayProxy<const uint32_t> const & indirectStrides, 4425 ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 4426 4427 void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const 4428 VULKAN_HPP_NOEXCEPT; 4429 4430 void copyAccelerationStructureToMemoryKHR( 4431 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 4432 4433 void copyMemoryToAccelerationStructureKHR( 4434 const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 4435 4436 void writeAccelerationStructuresPropertiesKHR( 4437 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 4438 VULKAN_HPP_NAMESPACE::QueryType queryType, 4439 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4440 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT; 4441 4442 //=== VK_NV_shading_rate_image === 4443 4444 void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, 4445 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT; 4446 4447 void setViewportShadingRatePaletteNV( uint32_t firstViewport, 4448 ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & 4449 shadingRatePalettes ) const VULKAN_HPP_NOEXCEPT; 4450 4451 void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, 4452 ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & 4453 customSampleOrders ) const VULKAN_HPP_NOEXCEPT; 4454 4455 //=== VK_NV_ray_tracing === 4456 4457 void buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV & info, 4458 VULKAN_HPP_NAMESPACE::Buffer instanceData, 4459 VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, 4460 VULKAN_HPP_NAMESPACE::Bool32 update, 4461 VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, 4462 VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, 4463 VULKAN_HPP_NAMESPACE::Buffer scratch, 4464 VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT; 4465 4466 void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, 4467 VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, 4468 VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode ) const 4469 VULKAN_HPP_NOEXCEPT; 4470 4471 void traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, 4472 VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, 4473 VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, 4474 VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, 4475 VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, 4476 VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, 4477 VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, 4478 VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, 4479 VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, 4480 VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, 4481 VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, 4482 uint32_t width, 4483 uint32_t height, 4484 uint32_t depth ) const VULKAN_HPP_NOEXCEPT; 4485 4486 void writeAccelerationStructuresPropertiesNV( 4487 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures, 4488 VULKAN_HPP_NAMESPACE::QueryType queryType, 4489 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4490 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT; 4491 4492 //=== VK_KHR_draw_indirect_count === 4493 4494 void drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 4495 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4496 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 4497 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 4498 uint32_t maxDrawCount, 4499 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4500 4501 void drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 4502 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4503 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 4504 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 4505 uint32_t maxDrawCount, 4506 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4507 4508 //=== VK_AMD_buffer_marker === 4509 4510 void writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, 4511 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 4512 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 4513 uint32_t marker ) const VULKAN_HPP_NOEXCEPT; 4514 4515 //=== VK_NV_mesh_shader === 4516 4517 void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT; 4518 4519 void drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, 4520 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4521 uint32_t drawCount, 4522 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4523 4524 void drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, 4525 VULKAN_HPP_NAMESPACE::DeviceSize offset, 4526 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 4527 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 4528 uint32_t maxDrawCount, 4529 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4530 4531 //=== VK_NV_scissor_exclusive === 4532 4533 void setExclusiveScissorNV( uint32_t firstExclusiveScissor, 4534 ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors ) const 4535 VULKAN_HPP_NOEXCEPT; 4536 4537 //=== VK_NV_device_diagnostic_checkpoints === 4538 4539 void setCheckpointNV( const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT; 4540 4541 //=== VK_INTEL_performance_query === 4542 4543 void setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo ) const; 4544 4545 void setPerformanceStreamMarkerINTEL( 4546 const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo ) const; 4547 4548 void setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo ) const; 4549 4550 //=== VK_KHR_fragment_shading_rate === 4551 4552 void setFragmentShadingRateKHR( 4553 const VULKAN_HPP_NAMESPACE::Extent2D & fragmentSize, 4554 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT; 4555 4556 //=== VK_EXT_line_rasterization === 4557 4558 void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT; 4559 4560 //=== VK_EXT_extended_dynamic_state === 4561 4562 void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const 4563 VULKAN_HPP_NOEXCEPT; 4564 4565 void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT; 4566 4567 void 4568 setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT; 4569 4570 void setViewportWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const 4571 VULKAN_HPP_NOEXCEPT; 4572 4573 void setScissorWithCountEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const 4574 VULKAN_HPP_NOEXCEPT; 4575 4576 void bindVertexBuffers2EXT( 4577 uint32_t firstBinding, 4578 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 4579 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 4580 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, 4581 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides 4582 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 4583 4584 void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT; 4585 4586 void setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT; 4587 4588 void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT; 4589 4590 void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT; 4591 4592 void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT; 4593 4594 void setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 4595 VULKAN_HPP_NAMESPACE::StencilOp failOp, 4596 VULKAN_HPP_NAMESPACE::StencilOp passOp, 4597 VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, 4598 VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT; 4599 4600 //=== VK_NV_device_generated_commands === 4601 4602 void preprocessGeneratedCommandsNV( 4603 const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT; 4604 4605 void executeGeneratedCommandsNV( 4606 VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, 4607 const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT; 4608 4609 void bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 4610 VULKAN_HPP_NAMESPACE::Pipeline pipeline, 4611 uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT; 4612 4613 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 4614 //=== VK_KHR_video_encode_queue === 4615 4616 void encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo ) const VULKAN_HPP_NOEXCEPT; 4617 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 4618 4619 //=== VK_KHR_synchronization2 === 4620 4621 void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, 4622 const VULKAN_HPP_NAMESPACE::DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT; 4623 4624 void resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, 4625 VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT; 4626 4627 void waitEvents2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 4628 ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfoKHR> const & dependencyInfos ) const 4629 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; 4630 4631 void 4632 pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT; 4633 4634 void writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, 4635 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 4636 uint32_t query ) const VULKAN_HPP_NOEXCEPT; 4637 4638 void writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, 4639 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 4640 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 4641 uint32_t marker ) const VULKAN_HPP_NOEXCEPT; 4642 4643 //=== VK_NV_fragment_shading_rate_enums === 4644 4645 void setFragmentShadingRateEnumNV( 4646 VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, 4647 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT; 4648 4649 //=== VK_KHR_copy_commands2 === 4650 4651 void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT; 4652 4653 void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR & copyImageInfo ) const VULKAN_HPP_NOEXCEPT; 4654 4655 void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR & copyBufferToImageInfo ) const 4656 VULKAN_HPP_NOEXCEPT; 4657 4658 void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR & copyImageToBufferInfo ) const 4659 VULKAN_HPP_NOEXCEPT; 4660 4661 void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR & blitImageInfo ) const VULKAN_HPP_NOEXCEPT; 4662 4663 void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR & resolveImageInfo ) const 4664 VULKAN_HPP_NOEXCEPT; 4665 4666 //=== VK_KHR_ray_tracing_pipeline === 4667 4668 void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable, 4669 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable, 4670 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable, 4671 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable, 4672 uint32_t width, 4673 uint32_t height, 4674 uint32_t depth ) const VULKAN_HPP_NOEXCEPT; 4675 4676 void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable, 4677 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable, 4678 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable, 4679 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable, 4680 VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT; 4681 4682 void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT; 4683 4684 //=== VK_EXT_vertex_input_dynamic_state === 4685 4686 void setVertexInputEXT( 4687 ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const & vertexBindingDescriptions, 4688 ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & 4689 vertexAttributeDescriptions ) const VULKAN_HPP_NOEXCEPT; 4690 4691 //=== VK_HUAWEI_subpass_shading === 4692 4693 void subpassShadingHUAWEI() const VULKAN_HPP_NOEXCEPT; 4694 4695 //=== VK_HUAWEI_invocation_mask === 4696 4697 void bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView imageView, 4698 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT; 4699 4700 //=== VK_EXT_extended_dynamic_state2 === 4701 4702 void setPatchControlPointsEXT( uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT; 4703 4704 void 4705 setRasterizerDiscardEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT; 4706 4707 void setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT; 4708 4709 void setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp ) const VULKAN_HPP_NOEXCEPT; 4710 4711 void 4712 setPrimitiveRestartEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT; 4713 4714 //=== VK_EXT_color_write_enable === 4715 4716 void setColorWriteEnableEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables ) const 4717 VULKAN_HPP_NOEXCEPT; 4718 4719 //=== VK_EXT_multi_draw === 4720 4721 void drawMultiEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const & vertexInfo, 4722 uint32_t instanceCount, 4723 uint32_t firstInstance, 4724 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 4725 4726 void drawMultiIndexedEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const & indexInfo, 4727 uint32_t instanceCount, 4728 uint32_t firstInstance, 4729 uint32_t stride, 4730 Optional<const int32_t> vertexOffset 4731 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 4732 4733 private: 4734 VULKAN_HPP_NAMESPACE::CommandBuffer m_commandBuffer; 4735 VkDevice m_device; 4736 VkCommandPool m_commandPool; 4737 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 4738 }; 4739 4740 class CommandBuffers : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer> 4741 { 4742 public: CommandBuffers(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo)4743 CommandBuffers( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4744 VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) 4745 { 4746 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher(); 4747 std::vector<VkCommandBuffer> commandBuffers( allocateInfo.commandBufferCount ); 4748 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 4749 dispatcher->vkAllocateCommandBuffers( static_cast<VkDevice>( *device ), 4750 reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), 4751 commandBuffers.data() ) ); 4752 if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) 4753 { 4754 this->reserve( allocateInfo.commandBufferCount ); 4755 for ( auto const & commandBuffer : commandBuffers ) 4756 { 4757 this->emplace_back( commandBuffer, 4758 static_cast<VkDevice>( *device ), 4759 static_cast<VkCommandPool>( allocateInfo.commandPool ), 4760 dispatcher ); 4761 } 4762 } 4763 else 4764 { 4765 throwResultException( result, "vkAllocateCommandBuffers" ); 4766 } 4767 } 4768 4769 CommandBuffers() = delete; 4770 CommandBuffers( CommandBuffers const & ) = delete; 4771 CommandBuffers( CommandBuffers && rhs ) = default; 4772 CommandBuffers & operator=( CommandBuffers const & ) = delete; 4773 CommandBuffers & operator=( CommandBuffers && rhs ) = default; 4774 }; 4775 4776 class CuFunctionNVX 4777 { 4778 public: 4779 using CType = VkCuFunctionNVX; 4780 4781 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 4782 VULKAN_HPP_NAMESPACE::ObjectType::eCuFunctionNVX; 4783 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 4784 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX; 4785 4786 public: CuFunctionNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4787 CuFunctionNVX( 4788 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4789 VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & createInfo, 4790 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4791 : m_device( *device ) 4792 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 4793 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 4794 , m_dispatcher( device.getDispatcher() ) 4795 { 4796 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 4797 getDispatcher()->vkCreateCuFunctionNVX( static_cast<VkDevice>( *device ), 4798 reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( &createInfo ), 4799 m_allocator, 4800 reinterpret_cast<VkCuFunctionNVX *>( &m_cuFunctionNVX ) ) ); 4801 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 4802 { 4803 throwResultException( result, "vkCreateCuFunctionNVX" ); 4804 } 4805 } 4806 CuFunctionNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCuFunctionNVX cuFunctionNVX,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4807 CuFunctionNVX( 4808 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4809 VkCuFunctionNVX cuFunctionNVX, 4810 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4811 : m_cuFunctionNVX( cuFunctionNVX ) 4812 , m_device( *device ) 4813 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 4814 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 4815 , m_dispatcher( device.getDispatcher() ) 4816 {} 4817 CuFunctionNVX(std::nullptr_t)4818 CuFunctionNVX( std::nullptr_t ) {} 4819 ~CuFunctionNVX()4820 ~CuFunctionNVX() 4821 { 4822 if ( m_cuFunctionNVX ) 4823 { 4824 getDispatcher()->vkDestroyCuFunctionNVX( 4825 m_device, static_cast<VkCuFunctionNVX>( m_cuFunctionNVX ), m_allocator ); 4826 } 4827 } 4828 4829 CuFunctionNVX() = delete; 4830 CuFunctionNVX( CuFunctionNVX const & ) = delete; CuFunctionNVX(CuFunctionNVX && rhs)4831 CuFunctionNVX( CuFunctionNVX && rhs ) VULKAN_HPP_NOEXCEPT 4832 : m_cuFunctionNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_cuFunctionNVX, {} ) ) 4833 , m_device( rhs.m_device ) 4834 , m_allocator( rhs.m_allocator ) 4835 , m_dispatcher( rhs.m_dispatcher ) 4836 {} 4837 CuFunctionNVX & operator=( CuFunctionNVX const & ) = delete; operator =(CuFunctionNVX && rhs)4838 CuFunctionNVX & operator =( CuFunctionNVX && rhs ) VULKAN_HPP_NOEXCEPT 4839 { 4840 if ( this != &rhs ) 4841 { 4842 if ( m_cuFunctionNVX ) 4843 { 4844 getDispatcher()->vkDestroyCuFunctionNVX( 4845 m_device, static_cast<VkCuFunctionNVX>( m_cuFunctionNVX ), m_allocator ); 4846 } 4847 m_cuFunctionNVX = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_cuFunctionNVX, {} ); 4848 m_device = rhs.m_device; 4849 m_allocator = rhs.m_allocator; 4850 m_dispatcher = rhs.m_dispatcher; 4851 } 4852 return *this; 4853 } 4854 operator *() const4855 VULKAN_HPP_NAMESPACE::CuFunctionNVX const & operator*() const VULKAN_HPP_NOEXCEPT 4856 { 4857 return m_cuFunctionNVX; 4858 } 4859 getDispatcher() const4860 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 4861 { 4862 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 4863 return m_dispatcher; 4864 } 4865 4866 private: 4867 VULKAN_HPP_NAMESPACE::CuFunctionNVX m_cuFunctionNVX; 4868 VkDevice m_device; 4869 const VkAllocationCallbacks * m_allocator = nullptr; 4870 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 4871 }; 4872 4873 class CuModuleNVX 4874 { 4875 public: 4876 using CType = VkCuModuleNVX; 4877 4878 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 4879 VULKAN_HPP_NAMESPACE::ObjectType::eCuModuleNVX; 4880 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 4881 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX; 4882 4883 public: CuModuleNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4884 CuModuleNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4885 VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const & createInfo, 4886 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4887 : m_device( *device ) 4888 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 4889 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 4890 , m_dispatcher( device.getDispatcher() ) 4891 { 4892 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 4893 getDispatcher()->vkCreateCuModuleNVX( static_cast<VkDevice>( *device ), 4894 reinterpret_cast<const VkCuModuleCreateInfoNVX *>( &createInfo ), 4895 m_allocator, 4896 reinterpret_cast<VkCuModuleNVX *>( &m_cuModuleNVX ) ) ); 4897 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 4898 { 4899 throwResultException( result, "vkCreateCuModuleNVX" ); 4900 } 4901 } 4902 CuModuleNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCuModuleNVX cuModuleNVX,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4903 CuModuleNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4904 VkCuModuleNVX cuModuleNVX, 4905 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4906 : m_cuModuleNVX( cuModuleNVX ) 4907 , m_device( *device ) 4908 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 4909 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 4910 , m_dispatcher( device.getDispatcher() ) 4911 {} 4912 CuModuleNVX(std::nullptr_t)4913 CuModuleNVX( std::nullptr_t ) {} 4914 ~CuModuleNVX()4915 ~CuModuleNVX() 4916 { 4917 if ( m_cuModuleNVX ) 4918 { 4919 getDispatcher()->vkDestroyCuModuleNVX( m_device, static_cast<VkCuModuleNVX>( m_cuModuleNVX ), m_allocator ); 4920 } 4921 } 4922 4923 CuModuleNVX() = delete; 4924 CuModuleNVX( CuModuleNVX const & ) = delete; CuModuleNVX(CuModuleNVX && rhs)4925 CuModuleNVX( CuModuleNVX && rhs ) VULKAN_HPP_NOEXCEPT 4926 : m_cuModuleNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_cuModuleNVX, {} ) ) 4927 , m_device( rhs.m_device ) 4928 , m_allocator( rhs.m_allocator ) 4929 , m_dispatcher( rhs.m_dispatcher ) 4930 {} 4931 CuModuleNVX & operator=( CuModuleNVX const & ) = delete; operator =(CuModuleNVX && rhs)4932 CuModuleNVX & operator =( CuModuleNVX && rhs ) VULKAN_HPP_NOEXCEPT 4933 { 4934 if ( this != &rhs ) 4935 { 4936 if ( m_cuModuleNVX ) 4937 { 4938 getDispatcher()->vkDestroyCuModuleNVX( m_device, static_cast<VkCuModuleNVX>( m_cuModuleNVX ), m_allocator ); 4939 } 4940 m_cuModuleNVX = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_cuModuleNVX, {} ); 4941 m_device = rhs.m_device; 4942 m_allocator = rhs.m_allocator; 4943 m_dispatcher = rhs.m_dispatcher; 4944 } 4945 return *this; 4946 } 4947 operator *() const4948 VULKAN_HPP_NAMESPACE::CuModuleNVX const & operator*() const VULKAN_HPP_NOEXCEPT 4949 { 4950 return m_cuModuleNVX; 4951 } 4952 getDispatcher() const4953 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 4954 { 4955 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 4956 return m_dispatcher; 4957 } 4958 4959 private: 4960 VULKAN_HPP_NAMESPACE::CuModuleNVX m_cuModuleNVX; 4961 VkDevice m_device; 4962 const VkAllocationCallbacks * m_allocator = nullptr; 4963 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 4964 }; 4965 4966 class DebugReportCallbackEXT 4967 { 4968 public: 4969 using CType = VkDebugReportCallbackEXT; 4970 4971 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 4972 VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT; 4973 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 4974 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT; 4975 4976 public: DebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4977 DebugReportCallbackEXT( 4978 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 4979 VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & createInfo, 4980 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4981 : m_instance( *instance ) 4982 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 4983 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 4984 , m_dispatcher( instance.getDispatcher() ) 4985 { 4986 VULKAN_HPP_NAMESPACE::Result result = 4987 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDebugReportCallbackEXT( 4988 static_cast<VkInstance>( *instance ), 4989 reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ), 4990 m_allocator, 4991 reinterpret_cast<VkDebugReportCallbackEXT *>( &m_debugReportCallbackEXT ) ) ); 4992 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 4993 { 4994 throwResultException( result, "vkCreateDebugReportCallbackEXT" ); 4995 } 4996 } 4997 DebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VkDebugReportCallbackEXT debugReportCallbackEXT,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4998 DebugReportCallbackEXT( 4999 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 5000 VkDebugReportCallbackEXT debugReportCallbackEXT, 5001 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5002 : m_debugReportCallbackEXT( debugReportCallbackEXT ) 5003 , m_instance( *instance ) 5004 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5005 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5006 , m_dispatcher( instance.getDispatcher() ) 5007 {} 5008 DebugReportCallbackEXT(std::nullptr_t)5009 DebugReportCallbackEXT( std::nullptr_t ) {} 5010 ~DebugReportCallbackEXT()5011 ~DebugReportCallbackEXT() 5012 { 5013 if ( m_debugReportCallbackEXT ) 5014 { 5015 getDispatcher()->vkDestroyDebugReportCallbackEXT( 5016 m_instance, static_cast<VkDebugReportCallbackEXT>( m_debugReportCallbackEXT ), m_allocator ); 5017 } 5018 } 5019 5020 DebugReportCallbackEXT() = delete; 5021 DebugReportCallbackEXT( DebugReportCallbackEXT const & ) = delete; DebugReportCallbackEXT(DebugReportCallbackEXT && rhs)5022 DebugReportCallbackEXT( DebugReportCallbackEXT && rhs ) VULKAN_HPP_NOEXCEPT 5023 : m_debugReportCallbackEXT( 5024 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugReportCallbackEXT, {} ) ) 5025 , m_instance( rhs.m_instance ) 5026 , m_allocator( rhs.m_allocator ) 5027 , m_dispatcher( rhs.m_dispatcher ) 5028 {} 5029 DebugReportCallbackEXT & operator=( DebugReportCallbackEXT const & ) = delete; operator =(DebugReportCallbackEXT && rhs)5030 DebugReportCallbackEXT & operator=( DebugReportCallbackEXT && rhs ) VULKAN_HPP_NOEXCEPT 5031 { 5032 if ( this != &rhs ) 5033 { 5034 if ( m_debugReportCallbackEXT ) 5035 { 5036 getDispatcher()->vkDestroyDebugReportCallbackEXT( 5037 m_instance, static_cast<VkDebugReportCallbackEXT>( m_debugReportCallbackEXT ), m_allocator ); 5038 } 5039 m_debugReportCallbackEXT = 5040 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugReportCallbackEXT, {} ); 5041 m_instance = rhs.m_instance; 5042 m_allocator = rhs.m_allocator; 5043 m_dispatcher = rhs.m_dispatcher; 5044 } 5045 return *this; 5046 } 5047 operator *() const5048 VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & operator*() const VULKAN_HPP_NOEXCEPT 5049 { 5050 return m_debugReportCallbackEXT; 5051 } 5052 getDispatcher() const5053 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 5054 { 5055 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5056 return m_dispatcher; 5057 } 5058 5059 private: 5060 VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT m_debugReportCallbackEXT; 5061 VkInstance m_instance; 5062 const VkAllocationCallbacks * m_allocator = nullptr; 5063 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 5064 }; 5065 5066 class DebugUtilsMessengerEXT 5067 { 5068 public: 5069 using CType = VkDebugUtilsMessengerEXT; 5070 5071 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 5072 VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT; 5073 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5074 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 5075 5076 public: DebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5077 DebugUtilsMessengerEXT( 5078 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 5079 VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & createInfo, 5080 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5081 : m_instance( *instance ) 5082 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5083 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5084 , m_dispatcher( instance.getDispatcher() ) 5085 { 5086 VULKAN_HPP_NAMESPACE::Result result = 5087 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDebugUtilsMessengerEXT( 5088 static_cast<VkInstance>( *instance ), 5089 reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ), 5090 m_allocator, 5091 reinterpret_cast<VkDebugUtilsMessengerEXT *>( &m_debugUtilsMessengerEXT ) ) ); 5092 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5093 { 5094 throwResultException( result, "vkCreateDebugUtilsMessengerEXT" ); 5095 } 5096 } 5097 DebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VkDebugUtilsMessengerEXT debugUtilsMessengerEXT,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5098 DebugUtilsMessengerEXT( 5099 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 5100 VkDebugUtilsMessengerEXT debugUtilsMessengerEXT, 5101 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5102 : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT ) 5103 , m_instance( *instance ) 5104 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5105 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5106 , m_dispatcher( instance.getDispatcher() ) 5107 {} 5108 DebugUtilsMessengerEXT(std::nullptr_t)5109 DebugUtilsMessengerEXT( std::nullptr_t ) {} 5110 ~DebugUtilsMessengerEXT()5111 ~DebugUtilsMessengerEXT() 5112 { 5113 if ( m_debugUtilsMessengerEXT ) 5114 { 5115 getDispatcher()->vkDestroyDebugUtilsMessengerEXT( 5116 m_instance, static_cast<VkDebugUtilsMessengerEXT>( m_debugUtilsMessengerEXT ), m_allocator ); 5117 } 5118 } 5119 5120 DebugUtilsMessengerEXT() = delete; 5121 DebugUtilsMessengerEXT( DebugUtilsMessengerEXT const & ) = delete; DebugUtilsMessengerEXT(DebugUtilsMessengerEXT && rhs)5122 DebugUtilsMessengerEXT( DebugUtilsMessengerEXT && rhs ) VULKAN_HPP_NOEXCEPT 5123 : m_debugUtilsMessengerEXT( 5124 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugUtilsMessengerEXT, {} ) ) 5125 , m_instance( rhs.m_instance ) 5126 , m_allocator( rhs.m_allocator ) 5127 , m_dispatcher( rhs.m_dispatcher ) 5128 {} 5129 DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT const & ) = delete; operator =(DebugUtilsMessengerEXT && rhs)5130 DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT && rhs ) VULKAN_HPP_NOEXCEPT 5131 { 5132 if ( this != &rhs ) 5133 { 5134 if ( m_debugUtilsMessengerEXT ) 5135 { 5136 getDispatcher()->vkDestroyDebugUtilsMessengerEXT( 5137 m_instance, static_cast<VkDebugUtilsMessengerEXT>( m_debugUtilsMessengerEXT ), m_allocator ); 5138 } 5139 m_debugUtilsMessengerEXT = 5140 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_debugUtilsMessengerEXT, {} ); 5141 m_instance = rhs.m_instance; 5142 m_allocator = rhs.m_allocator; 5143 m_dispatcher = rhs.m_dispatcher; 5144 } 5145 return *this; 5146 } 5147 operator *() const5148 VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & operator*() const VULKAN_HPP_NOEXCEPT 5149 { 5150 return m_debugUtilsMessengerEXT; 5151 } 5152 getDispatcher() const5153 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 5154 { 5155 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5156 return m_dispatcher; 5157 } 5158 5159 private: 5160 VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT m_debugUtilsMessengerEXT; 5161 VkInstance m_instance; 5162 const VkAllocationCallbacks * m_allocator = nullptr; 5163 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 5164 }; 5165 5166 class DeferredOperationKHR 5167 { 5168 public: 5169 using CType = VkDeferredOperationKHR; 5170 5171 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 5172 VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR; 5173 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5174 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 5175 5176 public: DeferredOperationKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5177 DeferredOperationKHR( 5178 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5179 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5180 : m_device( *device ) 5181 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5182 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5183 , m_dispatcher( device.getDispatcher() ) 5184 { 5185 VULKAN_HPP_NAMESPACE::Result result = 5186 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDeferredOperationKHR( 5187 static_cast<VkDevice>( *device ), 5188 m_allocator, 5189 reinterpret_cast<VkDeferredOperationKHR *>( &m_deferredOperationKHR ) ) ); 5190 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5191 { 5192 throwResultException( result, "vkCreateDeferredOperationKHR" ); 5193 } 5194 } 5195 DeferredOperationKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDeferredOperationKHR deferredOperationKHR,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5196 DeferredOperationKHR( 5197 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5198 VkDeferredOperationKHR deferredOperationKHR, 5199 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5200 : m_deferredOperationKHR( deferredOperationKHR ) 5201 , m_device( *device ) 5202 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5203 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5204 , m_dispatcher( device.getDispatcher() ) 5205 {} 5206 DeferredOperationKHR(std::nullptr_t)5207 DeferredOperationKHR( std::nullptr_t ) {} 5208 ~DeferredOperationKHR()5209 ~DeferredOperationKHR() 5210 { 5211 if ( m_deferredOperationKHR ) 5212 { 5213 getDispatcher()->vkDestroyDeferredOperationKHR( 5214 m_device, static_cast<VkDeferredOperationKHR>( m_deferredOperationKHR ), m_allocator ); 5215 } 5216 } 5217 5218 DeferredOperationKHR() = delete; 5219 DeferredOperationKHR( DeferredOperationKHR const & ) = delete; DeferredOperationKHR(DeferredOperationKHR && rhs)5220 DeferredOperationKHR( DeferredOperationKHR && rhs ) VULKAN_HPP_NOEXCEPT 5221 : m_deferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deferredOperationKHR, 5222 {} ) ) 5223 , m_device( rhs.m_device ) 5224 , m_allocator( rhs.m_allocator ) 5225 , m_dispatcher( rhs.m_dispatcher ) 5226 {} 5227 DeferredOperationKHR & operator=( DeferredOperationKHR const & ) = delete; operator =(DeferredOperationKHR && rhs)5228 DeferredOperationKHR & operator=( DeferredOperationKHR && rhs ) VULKAN_HPP_NOEXCEPT 5229 { 5230 if ( this != &rhs ) 5231 { 5232 if ( m_deferredOperationKHR ) 5233 { 5234 getDispatcher()->vkDestroyDeferredOperationKHR( 5235 m_device, static_cast<VkDeferredOperationKHR>( m_deferredOperationKHR ), m_allocator ); 5236 } 5237 m_deferredOperationKHR = 5238 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deferredOperationKHR, {} ); 5239 m_device = rhs.m_device; 5240 m_allocator = rhs.m_allocator; 5241 m_dispatcher = rhs.m_dispatcher; 5242 } 5243 return *this; 5244 } 5245 operator *() const5246 VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & operator*() const VULKAN_HPP_NOEXCEPT 5247 { 5248 return m_deferredOperationKHR; 5249 } 5250 getDispatcher() const5251 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5252 { 5253 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5254 return m_dispatcher; 5255 } 5256 5257 //=== VK_KHR_deferred_host_operations === 5258 5259 VULKAN_HPP_NODISCARD uint32_t getMaxConcurrency() const VULKAN_HPP_NOEXCEPT; 5260 5261 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getResult() const VULKAN_HPP_NOEXCEPT; 5262 5263 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result join() const; 5264 5265 private: 5266 VULKAN_HPP_NAMESPACE::DeferredOperationKHR m_deferredOperationKHR; 5267 VkDevice m_device; 5268 const VkAllocationCallbacks * m_allocator = nullptr; 5269 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5270 }; 5271 5272 class DescriptorPool 5273 { 5274 public: 5275 using CType = VkDescriptorPool; 5276 5277 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 5278 VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool; 5279 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5280 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool; 5281 5282 public: DescriptorPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5283 DescriptorPool( 5284 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5285 VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & createInfo, 5286 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5287 : m_device( *device ) 5288 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5289 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5290 , m_dispatcher( device.getDispatcher() ) 5291 { 5292 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 5293 getDispatcher()->vkCreateDescriptorPool( static_cast<VkDevice>( *device ), 5294 reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ), 5295 m_allocator, 5296 reinterpret_cast<VkDescriptorPool *>( &m_descriptorPool ) ) ); 5297 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5298 { 5299 throwResultException( result, "vkCreateDescriptorPool" ); 5300 } 5301 } 5302 DescriptorPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5303 DescriptorPool( 5304 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5305 VkDescriptorPool descriptorPool, 5306 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5307 : m_descriptorPool( descriptorPool ) 5308 , m_device( *device ) 5309 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5310 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5311 , m_dispatcher( device.getDispatcher() ) 5312 {} 5313 DescriptorPool(std::nullptr_t)5314 DescriptorPool( std::nullptr_t ) {} 5315 ~DescriptorPool()5316 ~DescriptorPool() 5317 { 5318 if ( m_descriptorPool ) 5319 { 5320 getDispatcher()->vkDestroyDescriptorPool( 5321 m_device, static_cast<VkDescriptorPool>( m_descriptorPool ), m_allocator ); 5322 } 5323 } 5324 5325 DescriptorPool() = delete; 5326 DescriptorPool( DescriptorPool const & ) = delete; DescriptorPool(DescriptorPool && rhs)5327 DescriptorPool( DescriptorPool && rhs ) VULKAN_HPP_NOEXCEPT 5328 : m_descriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ) ) 5329 , m_device( rhs.m_device ) 5330 , m_allocator( rhs.m_allocator ) 5331 , m_dispatcher( rhs.m_dispatcher ) 5332 {} 5333 DescriptorPool & operator=( DescriptorPool const & ) = delete; operator =(DescriptorPool && rhs)5334 DescriptorPool & operator =( DescriptorPool && rhs ) VULKAN_HPP_NOEXCEPT 5335 { 5336 if ( this != &rhs ) 5337 { 5338 if ( m_descriptorPool ) 5339 { 5340 getDispatcher()->vkDestroyDescriptorPool( 5341 m_device, static_cast<VkDescriptorPool>( m_descriptorPool ), m_allocator ); 5342 } 5343 m_descriptorPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ); 5344 m_device = rhs.m_device; 5345 m_allocator = rhs.m_allocator; 5346 m_dispatcher = rhs.m_dispatcher; 5347 } 5348 return *this; 5349 } 5350 operator *() const5351 VULKAN_HPP_NAMESPACE::DescriptorPool const & operator*() const VULKAN_HPP_NOEXCEPT 5352 { 5353 return m_descriptorPool; 5354 } 5355 getDispatcher() const5356 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5357 { 5358 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5359 return m_dispatcher; 5360 } 5361 5362 //=== VK_VERSION_1_0 === 5363 5364 void reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const 5365 VULKAN_HPP_NOEXCEPT; 5366 5367 private: 5368 VULKAN_HPP_NAMESPACE::DescriptorPool m_descriptorPool; 5369 VkDevice m_device; 5370 const VkAllocationCallbacks * m_allocator = nullptr; 5371 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5372 }; 5373 5374 class DescriptorSet 5375 { 5376 public: 5377 using CType = VkDescriptorSet; 5378 5379 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 5380 VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet; 5381 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5382 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet; 5383 5384 public: DescriptorSet(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool const & descriptorPool)5385 DescriptorSet( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5386 VkDescriptorSet descriptorSet, 5387 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool const & descriptorPool ) 5388 : m_descriptorSet( descriptorSet ) 5389 , m_device( *device ) 5390 , m_descriptorPool( *descriptorPool ) 5391 , m_dispatcher( device.getDispatcher() ) 5392 {} 5393 DescriptorSet(VkDescriptorSet descriptorSet,VkDevice device,VkDescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher)5394 DescriptorSet( VkDescriptorSet descriptorSet, 5395 VkDevice device, 5396 VkDescriptorPool descriptorPool, 5397 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher ) 5398 : m_descriptorSet( descriptorSet ) 5399 , m_device( device ) 5400 , m_descriptorPool( descriptorPool ) 5401 , m_dispatcher( dispatcher ) 5402 {} DescriptorSet(std::nullptr_t)5403 DescriptorSet( std::nullptr_t ) {} 5404 ~DescriptorSet()5405 ~DescriptorSet() 5406 { 5407 if ( m_descriptorSet ) 5408 { 5409 getDispatcher()->vkFreeDescriptorSets( 5410 m_device, m_descriptorPool, 1, reinterpret_cast<VkDescriptorSet const *>( &m_descriptorSet ) ); 5411 } 5412 } 5413 5414 DescriptorSet() = delete; 5415 DescriptorSet( DescriptorSet const & ) = delete; DescriptorSet(DescriptorSet && rhs)5416 DescriptorSet( DescriptorSet && rhs ) VULKAN_HPP_NOEXCEPT 5417 : m_descriptorSet( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSet, {} ) ) 5418 , m_device( rhs.m_device ) 5419 , m_descriptorPool( rhs.m_descriptorPool ) 5420 , m_dispatcher( rhs.m_dispatcher ) 5421 {} 5422 DescriptorSet & operator=( DescriptorSet const & ) = delete; operator =(DescriptorSet && rhs)5423 DescriptorSet & operator =( DescriptorSet && rhs ) VULKAN_HPP_NOEXCEPT 5424 { 5425 if ( this != &rhs ) 5426 { 5427 if ( m_descriptorSet ) 5428 { 5429 getDispatcher()->vkFreeDescriptorSets( 5430 m_device, m_descriptorPool, 1, reinterpret_cast<VkDescriptorSet const *>( &m_descriptorSet ) ); 5431 } 5432 m_descriptorSet = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSet, {} ); 5433 m_device = rhs.m_device; 5434 m_descriptorPool = rhs.m_descriptorPool; 5435 m_dispatcher = rhs.m_dispatcher; 5436 } 5437 return *this; 5438 } 5439 operator *() const5440 VULKAN_HPP_NAMESPACE::DescriptorSet const & operator*() const VULKAN_HPP_NOEXCEPT 5441 { 5442 return m_descriptorSet; 5443 } 5444 getDispatcher() const5445 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5446 { 5447 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5448 return m_dispatcher; 5449 } 5450 5451 //=== VK_VERSION_1_1 === 5452 5453 void updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 5454 const void * pData ) const VULKAN_HPP_NOEXCEPT; 5455 5456 //=== VK_KHR_descriptor_update_template === 5457 5458 void updateWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 5459 const void * pData ) const VULKAN_HPP_NOEXCEPT; 5460 5461 private: 5462 VULKAN_HPP_NAMESPACE::DescriptorSet m_descriptorSet; 5463 VkDevice m_device; 5464 VkDescriptorPool m_descriptorPool; 5465 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5466 }; 5467 5468 class DescriptorSets : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet> 5469 { 5470 public: DescriptorSets(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo)5471 DescriptorSets( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5472 VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) 5473 { 5474 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher(); 5475 std::vector<VkDescriptorSet> descriptorSets( allocateInfo.descriptorSetCount ); 5476 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 5477 dispatcher->vkAllocateDescriptorSets( static_cast<VkDevice>( *device ), 5478 reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), 5479 descriptorSets.data() ) ); 5480 if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5481 { 5482 this->reserve( allocateInfo.descriptorSetCount ); 5483 for ( auto const & descriptorSet : descriptorSets ) 5484 { 5485 this->emplace_back( descriptorSet, 5486 static_cast<VkDevice>( *device ), 5487 static_cast<VkDescriptorPool>( allocateInfo.descriptorPool ), 5488 dispatcher ); 5489 } 5490 } 5491 else 5492 { 5493 throwResultException( result, "vkAllocateDescriptorSets" ); 5494 } 5495 } 5496 5497 DescriptorSets() = delete; 5498 DescriptorSets( DescriptorSets const & ) = delete; 5499 DescriptorSets( DescriptorSets && rhs ) = default; 5500 DescriptorSets & operator=( DescriptorSets const & ) = delete; 5501 DescriptorSets & operator=( DescriptorSets && rhs ) = default; 5502 }; 5503 5504 class DescriptorSetLayout 5505 { 5506 public: 5507 using CType = VkDescriptorSetLayout; 5508 5509 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 5510 VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout; 5511 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5512 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout; 5513 5514 public: DescriptorSetLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5515 DescriptorSetLayout( 5516 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5517 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & createInfo, 5518 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5519 : m_device( *device ) 5520 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5521 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5522 , m_dispatcher( device.getDispatcher() ) 5523 { 5524 VULKAN_HPP_NAMESPACE::Result result = 5525 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorSetLayout( 5526 static_cast<VkDevice>( *device ), 5527 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 5528 m_allocator, 5529 reinterpret_cast<VkDescriptorSetLayout *>( &m_descriptorSetLayout ) ) ); 5530 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5531 { 5532 throwResultException( result, "vkCreateDescriptorSetLayout" ); 5533 } 5534 } 5535 DescriptorSetLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDescriptorSetLayout descriptorSetLayout,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5536 DescriptorSetLayout( 5537 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5538 VkDescriptorSetLayout descriptorSetLayout, 5539 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5540 : m_descriptorSetLayout( descriptorSetLayout ) 5541 , m_device( *device ) 5542 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5543 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5544 , m_dispatcher( device.getDispatcher() ) 5545 {} 5546 DescriptorSetLayout(std::nullptr_t)5547 DescriptorSetLayout( std::nullptr_t ) {} 5548 ~DescriptorSetLayout()5549 ~DescriptorSetLayout() 5550 { 5551 if ( m_descriptorSetLayout ) 5552 { 5553 getDispatcher()->vkDestroyDescriptorSetLayout( 5554 m_device, static_cast<VkDescriptorSetLayout>( m_descriptorSetLayout ), m_allocator ); 5555 } 5556 } 5557 5558 DescriptorSetLayout() = delete; 5559 DescriptorSetLayout( DescriptorSetLayout const & ) = delete; DescriptorSetLayout(DescriptorSetLayout && rhs)5560 DescriptorSetLayout( DescriptorSetLayout && rhs ) VULKAN_HPP_NOEXCEPT 5561 : m_descriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout, 5562 {} ) ) 5563 , m_device( rhs.m_device ) 5564 , m_allocator( rhs.m_allocator ) 5565 , m_dispatcher( rhs.m_dispatcher ) 5566 {} 5567 DescriptorSetLayout & operator=( DescriptorSetLayout const & ) = delete; operator =(DescriptorSetLayout && rhs)5568 DescriptorSetLayout & operator =( DescriptorSetLayout && rhs ) VULKAN_HPP_NOEXCEPT 5569 { 5570 if ( this != &rhs ) 5571 { 5572 if ( m_descriptorSetLayout ) 5573 { 5574 getDispatcher()->vkDestroyDescriptorSetLayout( 5575 m_device, static_cast<VkDescriptorSetLayout>( m_descriptorSetLayout ), m_allocator ); 5576 } 5577 m_descriptorSetLayout = 5578 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout, {} ); 5579 m_device = rhs.m_device; 5580 m_allocator = rhs.m_allocator; 5581 m_dispatcher = rhs.m_dispatcher; 5582 } 5583 return *this; 5584 } 5585 operator *() const5586 VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & operator*() const VULKAN_HPP_NOEXCEPT 5587 { 5588 return m_descriptorSetLayout; 5589 } 5590 getDispatcher() const5591 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5592 { 5593 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5594 return m_dispatcher; 5595 } 5596 5597 private: 5598 VULKAN_HPP_NAMESPACE::DescriptorSetLayout m_descriptorSetLayout; 5599 VkDevice m_device; 5600 const VkAllocationCallbacks * m_allocator = nullptr; 5601 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5602 }; 5603 5604 class DescriptorUpdateTemplate 5605 { 5606 public: 5607 using CType = VkDescriptorUpdateTemplate; 5608 5609 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 5610 VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate; 5611 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5612 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate; 5613 5614 public: DescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5615 DescriptorUpdateTemplate( 5616 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5617 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo, 5618 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5619 : m_device( *device ) 5620 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5621 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5622 , m_dispatcher( device.getDispatcher() ) 5623 { 5624 VULKAN_HPP_NAMESPACE::Result result = 5625 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorUpdateTemplate( 5626 static_cast<VkDevice>( *device ), 5627 reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), 5628 m_allocator, 5629 reinterpret_cast<VkDescriptorUpdateTemplate *>( &m_descriptorUpdateTemplate ) ) ); 5630 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5631 { 5632 throwResultException( result, "vkCreateDescriptorUpdateTemplate" ); 5633 } 5634 } 5635 DescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5636 DescriptorUpdateTemplate( 5637 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5638 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 5639 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5640 : m_descriptorUpdateTemplate( descriptorUpdateTemplate ) 5641 , m_device( *device ) 5642 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5643 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5644 , m_dispatcher( device.getDispatcher() ) 5645 {} 5646 DescriptorUpdateTemplate(std::nullptr_t)5647 DescriptorUpdateTemplate( std::nullptr_t ) {} 5648 ~DescriptorUpdateTemplate()5649 ~DescriptorUpdateTemplate() 5650 { 5651 if ( m_descriptorUpdateTemplate ) 5652 { 5653 getDispatcher()->vkDestroyDescriptorUpdateTemplate( 5654 m_device, static_cast<VkDescriptorUpdateTemplate>( m_descriptorUpdateTemplate ), m_allocator ); 5655 } 5656 } 5657 5658 DescriptorUpdateTemplate() = delete; 5659 DescriptorUpdateTemplate( DescriptorUpdateTemplate const & ) = delete; DescriptorUpdateTemplate(DescriptorUpdateTemplate && rhs)5660 DescriptorUpdateTemplate( DescriptorUpdateTemplate && rhs ) VULKAN_HPP_NOEXCEPT 5661 : m_descriptorUpdateTemplate( 5662 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorUpdateTemplate, {} ) ) 5663 , m_device( rhs.m_device ) 5664 , m_allocator( rhs.m_allocator ) 5665 , m_dispatcher( rhs.m_dispatcher ) 5666 {} 5667 DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate const & ) = delete; operator =(DescriptorUpdateTemplate && rhs)5668 DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate && rhs ) VULKAN_HPP_NOEXCEPT 5669 { 5670 if ( this != &rhs ) 5671 { 5672 if ( m_descriptorUpdateTemplate ) 5673 { 5674 getDispatcher()->vkDestroyDescriptorUpdateTemplate( 5675 m_device, static_cast<VkDescriptorUpdateTemplate>( m_descriptorUpdateTemplate ), m_allocator ); 5676 } 5677 m_descriptorUpdateTemplate = 5678 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorUpdateTemplate, {} ); 5679 m_device = rhs.m_device; 5680 m_allocator = rhs.m_allocator; 5681 m_dispatcher = rhs.m_dispatcher; 5682 } 5683 return *this; 5684 } 5685 operator *() const5686 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & operator*() const VULKAN_HPP_NOEXCEPT 5687 { 5688 return m_descriptorUpdateTemplate; 5689 } 5690 getDispatcher() const5691 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5692 { 5693 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5694 return m_dispatcher; 5695 } 5696 5697 private: 5698 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate m_descriptorUpdateTemplate; 5699 VkDevice m_device; 5700 const VkAllocationCallbacks * m_allocator = nullptr; 5701 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5702 }; 5703 5704 class DeviceMemory 5705 { 5706 public: 5707 using CType = VkDeviceMemory; 5708 5709 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 5710 VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory; 5711 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5712 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory; 5713 5714 public: DeviceMemory(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & allocateInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5715 DeviceMemory( 5716 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5717 VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & allocateInfo, 5718 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5719 : m_device( *device ) 5720 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5721 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5722 , m_dispatcher( device.getDispatcher() ) 5723 { 5724 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 5725 getDispatcher()->vkAllocateMemory( static_cast<VkDevice>( *device ), 5726 reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ), 5727 m_allocator, 5728 reinterpret_cast<VkDeviceMemory *>( &m_deviceMemory ) ) ); 5729 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5730 { 5731 throwResultException( result, "vkAllocateMemory" ); 5732 } 5733 } 5734 DeviceMemory(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDeviceMemory deviceMemory,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5735 DeviceMemory( 5736 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5737 VkDeviceMemory deviceMemory, 5738 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5739 : m_deviceMemory( deviceMemory ) 5740 , m_device( *device ) 5741 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 5742 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 5743 , m_dispatcher( device.getDispatcher() ) 5744 {} 5745 DeviceMemory(std::nullptr_t)5746 DeviceMemory( std::nullptr_t ) {} 5747 ~DeviceMemory()5748 ~DeviceMemory() 5749 { 5750 if ( m_deviceMemory ) 5751 { 5752 getDispatcher()->vkFreeMemory( m_device, static_cast<VkDeviceMemory>( m_deviceMemory ), m_allocator ); 5753 } 5754 } 5755 5756 DeviceMemory() = delete; 5757 DeviceMemory( DeviceMemory const & ) = delete; DeviceMemory(DeviceMemory && rhs)5758 DeviceMemory( DeviceMemory && rhs ) VULKAN_HPP_NOEXCEPT 5759 : m_deviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deviceMemory, {} ) ) 5760 , m_device( rhs.m_device ) 5761 , m_allocator( rhs.m_allocator ) 5762 , m_dispatcher( rhs.m_dispatcher ) 5763 {} 5764 DeviceMemory & operator=( DeviceMemory const & ) = delete; operator =(DeviceMemory && rhs)5765 DeviceMemory & operator =( DeviceMemory && rhs ) VULKAN_HPP_NOEXCEPT 5766 { 5767 if ( this != &rhs ) 5768 { 5769 if ( m_deviceMemory ) 5770 { 5771 getDispatcher()->vkFreeMemory( m_device, static_cast<VkDeviceMemory>( m_deviceMemory ), m_allocator ); 5772 } 5773 m_deviceMemory = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_deviceMemory, {} ); 5774 m_device = rhs.m_device; 5775 m_allocator = rhs.m_allocator; 5776 m_dispatcher = rhs.m_dispatcher; 5777 } 5778 return *this; 5779 } 5780 operator *() const5781 VULKAN_HPP_NAMESPACE::DeviceMemory const & operator*() const VULKAN_HPP_NOEXCEPT 5782 { 5783 return m_deviceMemory; 5784 } 5785 getDispatcher() const5786 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5787 { 5788 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5789 return m_dispatcher; 5790 } 5791 5792 //=== VK_VERSION_1_0 === 5793 5794 VULKAN_HPP_NODISCARD void * 5795 mapMemory( VULKAN_HPP_NAMESPACE::DeviceSize offset, 5796 VULKAN_HPP_NAMESPACE::DeviceSize size, 5797 VULKAN_HPP_NAMESPACE::MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 5798 5799 void unmapMemory() const VULKAN_HPP_NOEXCEPT; 5800 5801 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getCommitment() const VULKAN_HPP_NOEXCEPT; 5802 5803 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 5804 //=== VK_NV_external_memory_win32 === 5805 5806 VULKAN_HPP_NODISCARD HANDLE 5807 getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const; 5808 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 5809 5810 //=== VK_EXT_pageable_device_local_memory === 5811 5812 void setPriorityEXT( float priority ) const VULKAN_HPP_NOEXCEPT; 5813 5814 private: 5815 VULKAN_HPP_NAMESPACE::DeviceMemory m_deviceMemory; 5816 VkDevice m_device; 5817 const VkAllocationCallbacks * m_allocator = nullptr; 5818 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5819 }; 5820 5821 class DisplayKHR 5822 { 5823 public: 5824 using CType = VkDisplayKHR; 5825 5826 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 5827 VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR; 5828 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5829 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR; 5830 5831 public: DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,int32_t drmFd,uint32_t connectorId)5832 DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 5833 int32_t drmFd, 5834 uint32_t connectorId ) 5835 : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() ) 5836 { 5837 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 5838 getDispatcher()->vkGetDrmDisplayEXT( static_cast<VkPhysicalDevice>( *physicalDevice ), 5839 drmFd, 5840 connectorId, 5841 reinterpret_cast<VkDisplayKHR *>( &m_displayKHR ) ) ); 5842 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5843 { 5844 throwResultException( result, "vkGetDrmDisplayEXT" ); 5845 } 5846 } 5847 5848 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,Display & dpy,RROutput rrOutput)5849 DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 5850 Display & dpy, 5851 RROutput rrOutput ) 5852 : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() ) 5853 { 5854 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 5855 getDispatcher()->vkGetRandROutputDisplayEXT( static_cast<VkPhysicalDevice>( *physicalDevice ), 5856 &dpy, 5857 rrOutput, 5858 reinterpret_cast<VkDisplayKHR *>( &m_displayKHR ) ) ); 5859 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5860 { 5861 throwResultException( result, "vkGetRandROutputDisplayEXT" ); 5862 } 5863 } 5864 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 5865 5866 # if defined( VK_USE_PLATFORM_WIN32_KHR ) DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,uint32_t deviceRelativeId)5867 DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 5868 uint32_t deviceRelativeId ) 5869 : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() ) 5870 { 5871 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 5872 getDispatcher()->vkGetWinrtDisplayNV( static_cast<VkPhysicalDevice>( *physicalDevice ), 5873 deviceRelativeId, 5874 reinterpret_cast<VkDisplayKHR *>( &m_displayKHR ) ) ); 5875 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5876 { 5877 throwResultException( result, "vkGetWinrtDisplayNV" ); 5878 } 5879 } 5880 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 5881 DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,VkDisplayKHR displayKHR)5882 DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 5883 VkDisplayKHR displayKHR ) 5884 : m_displayKHR( displayKHR ) 5885 , m_physicalDevice( *physicalDevice ) 5886 , m_dispatcher( physicalDevice.getDispatcher() ) 5887 {} 5888 DisplayKHR(VkDisplayKHR displayKHR,VkPhysicalDevice physicalDevice,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher)5889 DisplayKHR( VkDisplayKHR displayKHR, 5890 VkPhysicalDevice physicalDevice, 5891 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher ) 5892 : m_displayKHR( displayKHR ), m_physicalDevice( physicalDevice ), m_dispatcher( dispatcher ) 5893 {} DisplayKHR(std::nullptr_t)5894 DisplayKHR( std::nullptr_t ) {} 5895 ~DisplayKHR()5896 ~DisplayKHR() 5897 { 5898 if ( m_displayKHR ) 5899 { 5900 getDispatcher()->vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( m_displayKHR ) ); 5901 } 5902 } 5903 5904 DisplayKHR() = delete; 5905 DisplayKHR( DisplayKHR const & ) = delete; DisplayKHR(DisplayKHR && rhs)5906 DisplayKHR( DisplayKHR && rhs ) VULKAN_HPP_NOEXCEPT 5907 : m_displayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayKHR, {} ) ) 5908 , m_physicalDevice( rhs.m_physicalDevice ) 5909 , m_dispatcher( rhs.m_dispatcher ) 5910 {} 5911 DisplayKHR & operator=( DisplayKHR const & ) = delete; operator =(DisplayKHR && rhs)5912 DisplayKHR & operator =( DisplayKHR && rhs ) VULKAN_HPP_NOEXCEPT 5913 { 5914 if ( this != &rhs ) 5915 { 5916 if ( m_displayKHR ) 5917 { 5918 getDispatcher()->vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( m_displayKHR ) ); 5919 } 5920 m_displayKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayKHR, {} ); 5921 m_physicalDevice = rhs.m_physicalDevice; 5922 m_dispatcher = rhs.m_dispatcher; 5923 } 5924 return *this; 5925 } 5926 operator *() const5927 VULKAN_HPP_NAMESPACE::DisplayKHR const & operator*() const VULKAN_HPP_NOEXCEPT 5928 { 5929 return m_displayKHR; 5930 } 5931 getDispatcher() const5932 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 5933 { 5934 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5935 return m_dispatcher; 5936 } 5937 5938 //=== VK_KHR_display === 5939 5940 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> getModeProperties() const; 5941 5942 //=== VK_KHR_get_display_properties2 === 5943 5944 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> getModeProperties2() const; 5945 5946 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 5947 //=== VK_NV_acquire_winrt_display === 5948 5949 void acquireWinrtNV() const; 5950 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 5951 5952 private: 5953 VULKAN_HPP_NAMESPACE::DisplayKHR m_displayKHR; 5954 VkPhysicalDevice m_physicalDevice; 5955 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 5956 }; 5957 5958 class DisplayKHRs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> 5959 { 5960 public: DisplayKHRs(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,uint32_t planeIndex)5961 DisplayKHRs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 5962 uint32_t planeIndex ) 5963 { 5964 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * dispatcher = 5965 physicalDevice.getDispatcher(); 5966 std::vector<VkDisplayKHR> displays; 5967 uint32_t displayCount; 5968 VULKAN_HPP_NAMESPACE::Result result; 5969 do 5970 { 5971 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkGetDisplayPlaneSupportedDisplaysKHR( 5972 static_cast<VkPhysicalDevice>( *physicalDevice ), planeIndex, &displayCount, nullptr ) ); 5973 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount ) 5974 { 5975 displays.resize( displayCount ); 5976 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkGetDisplayPlaneSupportedDisplaysKHR( 5977 static_cast<VkPhysicalDevice>( *physicalDevice ), planeIndex, &displayCount, displays.data() ) ); 5978 VULKAN_HPP_ASSERT( displayCount <= displays.size() ); 5979 } 5980 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 5981 if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) 5982 { 5983 this->reserve( displayCount ); 5984 for ( auto const & displayKHR : displays ) 5985 { 5986 this->emplace_back( displayKHR, static_cast<VkPhysicalDevice>( *physicalDevice ), dispatcher ); 5987 } 5988 } 5989 else 5990 { 5991 throwResultException( result, "vkGetDisplayPlaneSupportedDisplaysKHR" ); 5992 } 5993 } 5994 5995 DisplayKHRs() = delete; 5996 DisplayKHRs( DisplayKHRs const & ) = delete; 5997 DisplayKHRs( DisplayKHRs && rhs ) = default; 5998 DisplayKHRs & operator=( DisplayKHRs const & ) = delete; 5999 DisplayKHRs & operator=( DisplayKHRs && rhs ) = default; 6000 }; 6001 6002 class DisplayModeKHR 6003 { 6004 public: 6005 using CType = VkDisplayModeKHR; 6006 6007 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6008 VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR; 6009 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6010 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR; 6011 6012 public: DisplayModeKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display,VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6013 DisplayModeKHR( 6014 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 6015 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, 6016 VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & createInfo, 6017 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6018 : m_physicalDevice( *physicalDevice ), m_dispatcher( physicalDevice.getDispatcher() ) 6019 { 6020 VULKAN_HPP_NAMESPACE::Result result = 6021 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDisplayModeKHR( 6022 static_cast<VkPhysicalDevice>( *physicalDevice ), 6023 static_cast<VkDisplayKHR>( *display ), 6024 reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ), 6025 reinterpret_cast<const VkAllocationCallbacks *>( 6026 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 6027 reinterpret_cast<VkDisplayModeKHR *>( &m_displayModeKHR ) ) ); 6028 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6029 { 6030 throwResultException( result, "vkCreateDisplayModeKHR" ); 6031 } 6032 } 6033 DisplayModeKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,VkDisplayModeKHR displayModeKHR)6034 DisplayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 6035 VkDisplayModeKHR displayModeKHR ) 6036 : m_displayModeKHR( displayModeKHR ) 6037 , m_physicalDevice( *physicalDevice ) 6038 , m_dispatcher( physicalDevice.getDispatcher() ) 6039 {} 6040 DisplayModeKHR(std::nullptr_t)6041 DisplayModeKHR( std::nullptr_t ) {} 6042 6043 DisplayModeKHR() = delete; 6044 DisplayModeKHR( DisplayModeKHR const & ) = delete; DisplayModeKHR(DisplayModeKHR && rhs)6045 DisplayModeKHR( DisplayModeKHR && rhs ) VULKAN_HPP_NOEXCEPT 6046 : m_displayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayModeKHR, {} ) ) 6047 , m_dispatcher( rhs.m_dispatcher ) 6048 {} 6049 DisplayModeKHR & operator=( DisplayModeKHR const & ) = delete; operator =(DisplayModeKHR && rhs)6050 DisplayModeKHR & operator =( DisplayModeKHR && rhs ) VULKAN_HPP_NOEXCEPT 6051 { 6052 if ( this != &rhs ) 6053 { 6054 m_displayModeKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayModeKHR, {} ); 6055 m_dispatcher = rhs.m_dispatcher; 6056 } 6057 return *this; 6058 } 6059 operator *() const6060 VULKAN_HPP_NAMESPACE::DisplayModeKHR const & operator*() const VULKAN_HPP_NOEXCEPT 6061 { 6062 return m_displayModeKHR; 6063 } 6064 getDispatcher() const6065 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 6066 { 6067 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6068 return m_dispatcher; 6069 } 6070 6071 //=== VK_KHR_display === 6072 6073 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR 6074 getDisplayPlaneCapabilities( uint32_t planeIndex ) const; 6075 6076 private: 6077 VULKAN_HPP_NAMESPACE::DisplayModeKHR m_displayModeKHR; 6078 VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice; 6079 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 6080 }; 6081 6082 class Event 6083 { 6084 public: 6085 using CType = VkEvent; 6086 6087 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6088 VULKAN_HPP_NAMESPACE::ObjectType::eEvent; 6089 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6090 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent; 6091 6092 public: Event(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::EventCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6093 Event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6094 VULKAN_HPP_NAMESPACE::EventCreateInfo const & createInfo, 6095 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6096 : m_device( *device ) 6097 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6098 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6099 , m_dispatcher( device.getDispatcher() ) 6100 { 6101 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 6102 getDispatcher()->vkCreateEvent( static_cast<VkDevice>( *device ), 6103 reinterpret_cast<const VkEventCreateInfo *>( &createInfo ), 6104 m_allocator, 6105 reinterpret_cast<VkEvent *>( &m_event ) ) ); 6106 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6107 { 6108 throwResultException( result, "vkCreateEvent" ); 6109 } 6110 } 6111 Event(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkEvent event,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6112 Event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6113 VkEvent event, 6114 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6115 : m_event( event ) 6116 , m_device( *device ) 6117 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6118 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6119 , m_dispatcher( device.getDispatcher() ) 6120 {} 6121 Event(std::nullptr_t)6122 Event( std::nullptr_t ) {} 6123 ~Event()6124 ~Event() 6125 { 6126 if ( m_event ) 6127 { 6128 getDispatcher()->vkDestroyEvent( m_device, static_cast<VkEvent>( m_event ), m_allocator ); 6129 } 6130 } 6131 6132 Event() = delete; 6133 Event( Event const & ) = delete; Event(Event && rhs)6134 Event( Event && rhs ) VULKAN_HPP_NOEXCEPT 6135 : m_event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} ) ) 6136 , m_device( rhs.m_device ) 6137 , m_allocator( rhs.m_allocator ) 6138 , m_dispatcher( rhs.m_dispatcher ) 6139 {} 6140 Event & operator=( Event const & ) = delete; operator =(Event && rhs)6141 Event & operator =( Event && rhs ) VULKAN_HPP_NOEXCEPT 6142 { 6143 if ( this != &rhs ) 6144 { 6145 if ( m_event ) 6146 { 6147 getDispatcher()->vkDestroyEvent( m_device, static_cast<VkEvent>( m_event ), m_allocator ); 6148 } 6149 m_event = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} ); 6150 m_device = rhs.m_device; 6151 m_allocator = rhs.m_allocator; 6152 m_dispatcher = rhs.m_dispatcher; 6153 } 6154 return *this; 6155 } 6156 operator *() const6157 VULKAN_HPP_NAMESPACE::Event const & operator*() const VULKAN_HPP_NOEXCEPT 6158 { 6159 return m_event; 6160 } 6161 getDispatcher() const6162 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6163 { 6164 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6165 return m_dispatcher; 6166 } 6167 6168 //=== VK_VERSION_1_0 === 6169 6170 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; 6171 6172 void set() const; 6173 6174 void reset() const; 6175 6176 private: 6177 VULKAN_HPP_NAMESPACE::Event m_event; 6178 VkDevice m_device; 6179 const VkAllocationCallbacks * m_allocator = nullptr; 6180 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6181 }; 6182 6183 class Fence 6184 { 6185 public: 6186 using CType = VkFence; 6187 6188 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6189 VULKAN_HPP_NAMESPACE::ObjectType::eFence; 6190 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6191 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence; 6192 6193 public: Fence(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::FenceCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6194 Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6195 VULKAN_HPP_NAMESPACE::FenceCreateInfo const & createInfo, 6196 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6197 : m_device( *device ) 6198 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6199 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6200 , m_dispatcher( device.getDispatcher() ) 6201 { 6202 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 6203 getDispatcher()->vkCreateFence( static_cast<VkDevice>( *device ), 6204 reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ), 6205 m_allocator, 6206 reinterpret_cast<VkFence *>( &m_fence ) ) ); 6207 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6208 { 6209 throwResultException( result, "vkCreateFence" ); 6210 } 6211 } 6212 Fence(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6213 Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6214 VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfo, 6215 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6216 : m_device( *device ) 6217 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6218 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6219 , m_dispatcher( device.getDispatcher() ) 6220 { 6221 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 6222 getDispatcher()->vkRegisterDeviceEventEXT( static_cast<VkDevice>( *device ), 6223 reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ), 6224 m_allocator, 6225 reinterpret_cast<VkFence *>( &m_fence ) ) ); 6226 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6227 { 6228 throwResultException( result, "vkRegisterDeviceEventEXT" ); 6229 } 6230 } 6231 Fence(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display,VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & displayEventInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6232 Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6233 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, 6234 VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & displayEventInfo, 6235 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6236 : m_device( *device ) 6237 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6238 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6239 , m_dispatcher( device.getDispatcher() ) 6240 { 6241 VULKAN_HPP_NAMESPACE::Result result = 6242 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkRegisterDisplayEventEXT( 6243 static_cast<VkDevice>( *device ), 6244 static_cast<VkDisplayKHR>( *display ), 6245 reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ), 6246 m_allocator, 6247 reinterpret_cast<VkFence *>( &m_fence ) ) ); 6248 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6249 { 6250 throwResultException( result, "vkRegisterDisplayEventEXT" ); 6251 } 6252 } 6253 Fence(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkFence fence,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6254 Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6255 VkFence fence, 6256 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6257 : m_fence( fence ) 6258 , m_device( *device ) 6259 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6260 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6261 , m_dispatcher( device.getDispatcher() ) 6262 {} 6263 Fence(std::nullptr_t)6264 Fence( std::nullptr_t ) {} 6265 ~Fence()6266 ~Fence() 6267 { 6268 if ( m_fence ) 6269 { 6270 getDispatcher()->vkDestroyFence( m_device, static_cast<VkFence>( m_fence ), m_allocator ); 6271 } 6272 } 6273 6274 Fence() = delete; 6275 Fence( Fence const & ) = delete; Fence(Fence && rhs)6276 Fence( Fence && rhs ) VULKAN_HPP_NOEXCEPT 6277 : m_fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} ) ) 6278 , m_device( rhs.m_device ) 6279 , m_allocator( rhs.m_allocator ) 6280 , m_dispatcher( rhs.m_dispatcher ) 6281 {} 6282 Fence & operator=( Fence const & ) = delete; operator =(Fence && rhs)6283 Fence & operator =( Fence && rhs ) VULKAN_HPP_NOEXCEPT 6284 { 6285 if ( this != &rhs ) 6286 { 6287 if ( m_fence ) 6288 { 6289 getDispatcher()->vkDestroyFence( m_device, static_cast<VkFence>( m_fence ), m_allocator ); 6290 } 6291 m_fence = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} ); 6292 m_device = rhs.m_device; 6293 m_allocator = rhs.m_allocator; 6294 m_dispatcher = rhs.m_dispatcher; 6295 } 6296 return *this; 6297 } 6298 operator *() const6299 VULKAN_HPP_NAMESPACE::Fence const & operator*() const VULKAN_HPP_NOEXCEPT 6300 { 6301 return m_fence; 6302 } 6303 getDispatcher() const6304 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6305 { 6306 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6307 return m_dispatcher; 6308 } 6309 6310 //=== VK_VERSION_1_0 === 6311 6312 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; 6313 6314 private: 6315 VULKAN_HPP_NAMESPACE::Fence m_fence; 6316 VkDevice m_device; 6317 const VkAllocationCallbacks * m_allocator = nullptr; 6318 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6319 }; 6320 6321 class Framebuffer 6322 { 6323 public: 6324 using CType = VkFramebuffer; 6325 6326 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6327 VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer; 6328 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6329 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer; 6330 6331 public: Framebuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6332 Framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6333 VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & createInfo, 6334 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6335 : m_device( *device ) 6336 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6337 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6338 , m_dispatcher( device.getDispatcher() ) 6339 { 6340 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 6341 getDispatcher()->vkCreateFramebuffer( static_cast<VkDevice>( *device ), 6342 reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ), 6343 m_allocator, 6344 reinterpret_cast<VkFramebuffer *>( &m_framebuffer ) ) ); 6345 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6346 { 6347 throwResultException( result, "vkCreateFramebuffer" ); 6348 } 6349 } 6350 Framebuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkFramebuffer framebuffer,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6351 Framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6352 VkFramebuffer framebuffer, 6353 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6354 : m_framebuffer( framebuffer ) 6355 , m_device( *device ) 6356 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6357 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6358 , m_dispatcher( device.getDispatcher() ) 6359 {} 6360 Framebuffer(std::nullptr_t)6361 Framebuffer( std::nullptr_t ) {} 6362 ~Framebuffer()6363 ~Framebuffer() 6364 { 6365 if ( m_framebuffer ) 6366 { 6367 getDispatcher()->vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( m_framebuffer ), m_allocator ); 6368 } 6369 } 6370 6371 Framebuffer() = delete; 6372 Framebuffer( Framebuffer const & ) = delete; Framebuffer(Framebuffer && rhs)6373 Framebuffer( Framebuffer && rhs ) VULKAN_HPP_NOEXCEPT 6374 : m_framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} ) ) 6375 , m_device( rhs.m_device ) 6376 , m_allocator( rhs.m_allocator ) 6377 , m_dispatcher( rhs.m_dispatcher ) 6378 {} 6379 Framebuffer & operator=( Framebuffer const & ) = delete; operator =(Framebuffer && rhs)6380 Framebuffer & operator =( Framebuffer && rhs ) VULKAN_HPP_NOEXCEPT 6381 { 6382 if ( this != &rhs ) 6383 { 6384 if ( m_framebuffer ) 6385 { 6386 getDispatcher()->vkDestroyFramebuffer( m_device, static_cast<VkFramebuffer>( m_framebuffer ), m_allocator ); 6387 } 6388 m_framebuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} ); 6389 m_device = rhs.m_device; 6390 m_allocator = rhs.m_allocator; 6391 m_dispatcher = rhs.m_dispatcher; 6392 } 6393 return *this; 6394 } 6395 operator *() const6396 VULKAN_HPP_NAMESPACE::Framebuffer const & operator*() const VULKAN_HPP_NOEXCEPT 6397 { 6398 return m_framebuffer; 6399 } 6400 getDispatcher() const6401 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6402 { 6403 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6404 return m_dispatcher; 6405 } 6406 6407 private: 6408 VULKAN_HPP_NAMESPACE::Framebuffer m_framebuffer; 6409 VkDevice m_device; 6410 const VkAllocationCallbacks * m_allocator = nullptr; 6411 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6412 }; 6413 6414 class Image 6415 { 6416 public: 6417 using CType = VkImage; 6418 6419 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6420 VULKAN_HPP_NAMESPACE::ObjectType::eImage; 6421 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6422 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage; 6423 6424 public: Image(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::ImageCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6425 Image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6426 VULKAN_HPP_NAMESPACE::ImageCreateInfo const & createInfo, 6427 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6428 : m_device( *device ) 6429 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6430 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6431 , m_dispatcher( device.getDispatcher() ) 6432 { 6433 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 6434 getDispatcher()->vkCreateImage( static_cast<VkDevice>( *device ), 6435 reinterpret_cast<const VkImageCreateInfo *>( &createInfo ), 6436 m_allocator, 6437 reinterpret_cast<VkImage *>( &m_image ) ) ); 6438 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6439 { 6440 throwResultException( result, "vkCreateImage" ); 6441 } 6442 } 6443 Image(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkImage image,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6444 Image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6445 VkImage image, 6446 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6447 : m_image( image ) 6448 , m_device( *device ) 6449 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6450 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6451 , m_dispatcher( device.getDispatcher() ) 6452 {} 6453 Image(std::nullptr_t)6454 Image( std::nullptr_t ) {} 6455 ~Image()6456 ~Image() 6457 { 6458 if ( m_image ) 6459 { 6460 getDispatcher()->vkDestroyImage( m_device, static_cast<VkImage>( m_image ), m_allocator ); 6461 } 6462 } 6463 6464 Image() = delete; 6465 Image( Image const & ) = delete; Image(Image && rhs)6466 Image( Image && rhs ) VULKAN_HPP_NOEXCEPT 6467 : m_image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} ) ) 6468 , m_device( rhs.m_device ) 6469 , m_allocator( rhs.m_allocator ) 6470 , m_dispatcher( rhs.m_dispatcher ) 6471 {} 6472 Image & operator=( Image const & ) = delete; operator =(Image && rhs)6473 Image & operator =( Image && rhs ) VULKAN_HPP_NOEXCEPT 6474 { 6475 if ( this != &rhs ) 6476 { 6477 if ( m_image ) 6478 { 6479 getDispatcher()->vkDestroyImage( m_device, static_cast<VkImage>( m_image ), m_allocator ); 6480 } 6481 m_image = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} ); 6482 m_device = rhs.m_device; 6483 m_allocator = rhs.m_allocator; 6484 m_dispatcher = rhs.m_dispatcher; 6485 } 6486 return *this; 6487 } 6488 operator *() const6489 VULKAN_HPP_NAMESPACE::Image const & operator*() const VULKAN_HPP_NOEXCEPT 6490 { 6491 return m_image; 6492 } 6493 getDispatcher() const6494 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6495 { 6496 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6497 return m_dispatcher; 6498 } 6499 6500 //=== VK_VERSION_1_0 === 6501 6502 void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const; 6503 6504 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT; 6505 6506 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> 6507 getSparseMemoryRequirements() const VULKAN_HPP_NOEXCEPT; 6508 6509 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout 6510 getSubresourceLayout( const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource ) const VULKAN_HPP_NOEXCEPT; 6511 6512 //=== VK_EXT_image_drm_format_modifier === 6513 6514 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT 6515 getDrmFormatModifierPropertiesEXT() const; 6516 6517 private: 6518 VULKAN_HPP_NAMESPACE::Image m_image; 6519 VkDevice m_device; 6520 const VkAllocationCallbacks * m_allocator = nullptr; 6521 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6522 }; 6523 6524 class ImageView 6525 { 6526 public: 6527 using CType = VkImageView; 6528 6529 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6530 VULKAN_HPP_NAMESPACE::ObjectType::eImageView; 6531 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6532 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView; 6533 6534 public: ImageView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6535 ImageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6536 VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & createInfo, 6537 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6538 : m_device( *device ) 6539 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6540 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6541 , m_dispatcher( device.getDispatcher() ) 6542 { 6543 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 6544 getDispatcher()->vkCreateImageView( static_cast<VkDevice>( *device ), 6545 reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ), 6546 m_allocator, 6547 reinterpret_cast<VkImageView *>( &m_imageView ) ) ); 6548 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6549 { 6550 throwResultException( result, "vkCreateImageView" ); 6551 } 6552 } 6553 ImageView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkImageView imageView,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6554 ImageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6555 VkImageView imageView, 6556 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6557 : m_imageView( imageView ) 6558 , m_device( *device ) 6559 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6560 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6561 , m_dispatcher( device.getDispatcher() ) 6562 {} 6563 ImageView(std::nullptr_t)6564 ImageView( std::nullptr_t ) {} 6565 ~ImageView()6566 ~ImageView() 6567 { 6568 if ( m_imageView ) 6569 { 6570 getDispatcher()->vkDestroyImageView( m_device, static_cast<VkImageView>( m_imageView ), m_allocator ); 6571 } 6572 } 6573 6574 ImageView() = delete; 6575 ImageView( ImageView const & ) = delete; ImageView(ImageView && rhs)6576 ImageView( ImageView && rhs ) VULKAN_HPP_NOEXCEPT 6577 : m_imageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} ) ) 6578 , m_device( rhs.m_device ) 6579 , m_allocator( rhs.m_allocator ) 6580 , m_dispatcher( rhs.m_dispatcher ) 6581 {} 6582 ImageView & operator=( ImageView const & ) = delete; operator =(ImageView && rhs)6583 ImageView & operator =( ImageView && rhs ) VULKAN_HPP_NOEXCEPT 6584 { 6585 if ( this != &rhs ) 6586 { 6587 if ( m_imageView ) 6588 { 6589 getDispatcher()->vkDestroyImageView( m_device, static_cast<VkImageView>( m_imageView ), m_allocator ); 6590 } 6591 m_imageView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} ); 6592 m_device = rhs.m_device; 6593 m_allocator = rhs.m_allocator; 6594 m_dispatcher = rhs.m_dispatcher; 6595 } 6596 return *this; 6597 } 6598 operator *() const6599 VULKAN_HPP_NAMESPACE::ImageView const & operator*() const VULKAN_HPP_NOEXCEPT 6600 { 6601 return m_imageView; 6602 } 6603 getDispatcher() const6604 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6605 { 6606 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6607 return m_dispatcher; 6608 } 6609 6610 //=== VK_NVX_image_view_handle === 6611 6612 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX getAddressNVX() const; 6613 6614 private: 6615 VULKAN_HPP_NAMESPACE::ImageView m_imageView; 6616 VkDevice m_device; 6617 const VkAllocationCallbacks * m_allocator = nullptr; 6618 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6619 }; 6620 6621 class IndirectCommandsLayoutNV 6622 { 6623 public: 6624 using CType = VkIndirectCommandsLayoutNV; 6625 6626 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6627 VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV; 6628 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6629 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 6630 6631 public: IndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6632 IndirectCommandsLayoutNV( 6633 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6634 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & createInfo, 6635 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6636 : m_device( *device ) 6637 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6638 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6639 , m_dispatcher( device.getDispatcher() ) 6640 { 6641 VULKAN_HPP_NAMESPACE::Result result = 6642 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateIndirectCommandsLayoutNV( 6643 static_cast<VkDevice>( *device ), 6644 reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ), 6645 m_allocator, 6646 reinterpret_cast<VkIndirectCommandsLayoutNV *>( &m_indirectCommandsLayoutNV ) ) ); 6647 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6648 { 6649 throwResultException( result, "vkCreateIndirectCommandsLayoutNV" ); 6650 } 6651 } 6652 IndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkIndirectCommandsLayoutNV indirectCommandsLayoutNV,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6653 IndirectCommandsLayoutNV( 6654 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6655 VkIndirectCommandsLayoutNV indirectCommandsLayoutNV, 6656 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6657 : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV ) 6658 , m_device( *device ) 6659 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6660 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6661 , m_dispatcher( device.getDispatcher() ) 6662 {} 6663 IndirectCommandsLayoutNV(std::nullptr_t)6664 IndirectCommandsLayoutNV( std::nullptr_t ) {} 6665 ~IndirectCommandsLayoutNV()6666 ~IndirectCommandsLayoutNV() 6667 { 6668 if ( m_indirectCommandsLayoutNV ) 6669 { 6670 getDispatcher()->vkDestroyIndirectCommandsLayoutNV( 6671 m_device, static_cast<VkIndirectCommandsLayoutNV>( m_indirectCommandsLayoutNV ), m_allocator ); 6672 } 6673 } 6674 6675 IndirectCommandsLayoutNV() = delete; 6676 IndirectCommandsLayoutNV( IndirectCommandsLayoutNV const & ) = delete; IndirectCommandsLayoutNV(IndirectCommandsLayoutNV && rhs)6677 IndirectCommandsLayoutNV( IndirectCommandsLayoutNV && rhs ) VULKAN_HPP_NOEXCEPT 6678 : m_indirectCommandsLayoutNV( 6679 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_indirectCommandsLayoutNV, {} ) ) 6680 , m_device( rhs.m_device ) 6681 , m_allocator( rhs.m_allocator ) 6682 , m_dispatcher( rhs.m_dispatcher ) 6683 {} 6684 IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV const & ) = delete; operator =(IndirectCommandsLayoutNV && rhs)6685 IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV && rhs ) VULKAN_HPP_NOEXCEPT 6686 { 6687 if ( this != &rhs ) 6688 { 6689 if ( m_indirectCommandsLayoutNV ) 6690 { 6691 getDispatcher()->vkDestroyIndirectCommandsLayoutNV( 6692 m_device, static_cast<VkIndirectCommandsLayoutNV>( m_indirectCommandsLayoutNV ), m_allocator ); 6693 } 6694 m_indirectCommandsLayoutNV = 6695 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_indirectCommandsLayoutNV, {} ); 6696 m_device = rhs.m_device; 6697 m_allocator = rhs.m_allocator; 6698 m_dispatcher = rhs.m_dispatcher; 6699 } 6700 return *this; 6701 } 6702 operator *() const6703 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & operator*() const VULKAN_HPP_NOEXCEPT 6704 { 6705 return m_indirectCommandsLayoutNV; 6706 } 6707 getDispatcher() const6708 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6709 { 6710 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6711 return m_dispatcher; 6712 } 6713 6714 private: 6715 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV m_indirectCommandsLayoutNV; 6716 VkDevice m_device; 6717 const VkAllocationCallbacks * m_allocator = nullptr; 6718 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6719 }; 6720 6721 class PerformanceConfigurationINTEL 6722 { 6723 public: 6724 using CType = VkPerformanceConfigurationINTEL; 6725 6726 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6727 VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL; 6728 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6729 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 6730 6731 public: PerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo)6732 PerformanceConfigurationINTEL( 6733 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6734 VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) 6735 : m_device( *device ), m_dispatcher( device.getDispatcher() ) 6736 { 6737 VULKAN_HPP_NAMESPACE::Result result = 6738 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquirePerformanceConfigurationINTEL( 6739 static_cast<VkDevice>( *device ), 6740 reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ), 6741 reinterpret_cast<VkPerformanceConfigurationINTEL *>( &m_performanceConfigurationINTEL ) ) ); 6742 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6743 { 6744 throwResultException( result, "vkAcquirePerformanceConfigurationINTEL" ); 6745 } 6746 } 6747 PerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPerformanceConfigurationINTEL performanceConfigurationINTEL)6748 PerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6749 VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) 6750 : m_performanceConfigurationINTEL( performanceConfigurationINTEL ) 6751 , m_device( *device ) 6752 , m_dispatcher( device.getDispatcher() ) 6753 {} 6754 PerformanceConfigurationINTEL(std::nullptr_t)6755 PerformanceConfigurationINTEL( std::nullptr_t ) {} 6756 ~PerformanceConfigurationINTEL()6757 ~PerformanceConfigurationINTEL() 6758 { 6759 if ( m_performanceConfigurationINTEL ) 6760 { 6761 getDispatcher()->vkReleasePerformanceConfigurationINTEL( 6762 m_device, static_cast<VkPerformanceConfigurationINTEL>( m_performanceConfigurationINTEL ) ); 6763 } 6764 } 6765 6766 PerformanceConfigurationINTEL() = delete; 6767 PerformanceConfigurationINTEL( PerformanceConfigurationINTEL const & ) = delete; PerformanceConfigurationINTEL(PerformanceConfigurationINTEL && rhs)6768 PerformanceConfigurationINTEL( PerformanceConfigurationINTEL && rhs ) VULKAN_HPP_NOEXCEPT 6769 : m_performanceConfigurationINTEL( 6770 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_performanceConfigurationINTEL, {} ) ) 6771 , m_device( rhs.m_device ) 6772 , m_dispatcher( rhs.m_dispatcher ) 6773 {} 6774 PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL const & ) = delete; operator =(PerformanceConfigurationINTEL && rhs)6775 PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL && rhs ) VULKAN_HPP_NOEXCEPT 6776 { 6777 if ( this != &rhs ) 6778 { 6779 if ( m_performanceConfigurationINTEL ) 6780 { 6781 getDispatcher()->vkReleasePerformanceConfigurationINTEL( 6782 m_device, static_cast<VkPerformanceConfigurationINTEL>( m_performanceConfigurationINTEL ) ); 6783 } 6784 m_performanceConfigurationINTEL = 6785 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_performanceConfigurationINTEL, {} ); 6786 m_device = rhs.m_device; 6787 m_dispatcher = rhs.m_dispatcher; 6788 } 6789 return *this; 6790 } 6791 operator *() const6792 VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & operator*() const VULKAN_HPP_NOEXCEPT 6793 { 6794 return m_performanceConfigurationINTEL; 6795 } 6796 getDispatcher() const6797 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6798 { 6799 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6800 return m_dispatcher; 6801 } 6802 6803 private: 6804 VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL m_performanceConfigurationINTEL; 6805 VkDevice m_device; 6806 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6807 }; 6808 6809 class PipelineCache 6810 { 6811 public: 6812 using CType = VkPipelineCache; 6813 6814 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6815 VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache; 6816 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6817 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache; 6818 6819 public: PipelineCache(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6820 PipelineCache( 6821 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6822 VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & createInfo, 6823 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6824 : m_device( *device ) 6825 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6826 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6827 , m_dispatcher( device.getDispatcher() ) 6828 { 6829 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 6830 getDispatcher()->vkCreatePipelineCache( static_cast<VkDevice>( *device ), 6831 reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ), 6832 m_allocator, 6833 reinterpret_cast<VkPipelineCache *>( &m_pipelineCache ) ) ); 6834 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 6835 { 6836 throwResultException( result, "vkCreatePipelineCache" ); 6837 } 6838 } 6839 PipelineCache(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6840 PipelineCache( 6841 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6842 VkPipelineCache pipelineCache, 6843 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6844 : m_pipelineCache( pipelineCache ) 6845 , m_device( *device ) 6846 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6847 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6848 , m_dispatcher( device.getDispatcher() ) 6849 {} 6850 PipelineCache(std::nullptr_t)6851 PipelineCache( std::nullptr_t ) {} 6852 ~PipelineCache()6853 ~PipelineCache() 6854 { 6855 if ( m_pipelineCache ) 6856 { 6857 getDispatcher()->vkDestroyPipelineCache( 6858 m_device, static_cast<VkPipelineCache>( m_pipelineCache ), m_allocator ); 6859 } 6860 } 6861 6862 PipelineCache() = delete; 6863 PipelineCache( PipelineCache const & ) = delete; PipelineCache(PipelineCache && rhs)6864 PipelineCache( PipelineCache && rhs ) VULKAN_HPP_NOEXCEPT 6865 : m_pipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} ) ) 6866 , m_device( rhs.m_device ) 6867 , m_allocator( rhs.m_allocator ) 6868 , m_dispatcher( rhs.m_dispatcher ) 6869 {} 6870 PipelineCache & operator=( PipelineCache const & ) = delete; operator =(PipelineCache && rhs)6871 PipelineCache & operator =( PipelineCache && rhs ) VULKAN_HPP_NOEXCEPT 6872 { 6873 if ( this != &rhs ) 6874 { 6875 if ( m_pipelineCache ) 6876 { 6877 getDispatcher()->vkDestroyPipelineCache( 6878 m_device, static_cast<VkPipelineCache>( m_pipelineCache ), m_allocator ); 6879 } 6880 m_pipelineCache = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} ); 6881 m_device = rhs.m_device; 6882 m_allocator = rhs.m_allocator; 6883 m_dispatcher = rhs.m_dispatcher; 6884 } 6885 return *this; 6886 } 6887 operator *() const6888 VULKAN_HPP_NAMESPACE::PipelineCache const & operator*() const VULKAN_HPP_NOEXCEPT 6889 { 6890 return m_pipelineCache; 6891 } 6892 getDispatcher() const6893 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6894 { 6895 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6896 return m_dispatcher; 6897 } 6898 6899 //=== VK_VERSION_1_0 === 6900 6901 VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const; 6902 6903 void merge( ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches ) const; 6904 6905 private: 6906 VULKAN_HPP_NAMESPACE::PipelineCache m_pipelineCache; 6907 VkDevice m_device; 6908 const VkAllocationCallbacks * m_allocator = nullptr; 6909 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6910 }; 6911 6912 class Pipeline 6913 { 6914 public: 6915 using CType = VkPipeline; 6916 6917 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 6918 VULKAN_HPP_NAMESPACE::ObjectType::ePipeline; 6919 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6920 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline; 6921 6922 public: Pipeline(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6923 Pipeline( 6924 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6925 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & 6926 pipelineCache, 6927 VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & createInfo, 6928 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6929 : m_device( *device ) 6930 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6931 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6932 , m_dispatcher( device.getDispatcher() ) 6933 { 6934 m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateComputePipelines( 6935 static_cast<VkDevice>( *device ), 6936 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 6937 1, 6938 reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), 6939 m_allocator, 6940 reinterpret_cast<VkPipeline *>( &m_pipeline ) ) ); 6941 if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 6942 ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 6943 { 6944 throwResultException( m_constructorSuccessCode, "vkCreateComputePipelines" ); 6945 } 6946 } 6947 Pipeline(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6948 Pipeline( 6949 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6950 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & 6951 pipelineCache, 6952 VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & createInfo, 6953 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6954 : m_device( *device ) 6955 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6956 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6957 , m_dispatcher( device.getDispatcher() ) 6958 { 6959 m_constructorSuccessCode = 6960 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateGraphicsPipelines( 6961 static_cast<VkDevice>( *device ), 6962 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 6963 1, 6964 reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ), 6965 m_allocator, 6966 reinterpret_cast<VkPipeline *>( &m_pipeline ) ) ); 6967 if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 6968 ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 6969 { 6970 throwResultException( m_constructorSuccessCode, "vkCreateGraphicsPipelines" ); 6971 } 6972 } 6973 Pipeline(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6974 Pipeline( 6975 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6976 VULKAN_HPP_NAMESPACE::Optional< 6977 const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, 6978 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & 6979 pipelineCache, 6980 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const & createInfo, 6981 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6982 : m_device( *device ) 6983 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 6984 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 6985 , m_dispatcher( device.getDispatcher() ) 6986 { 6987 m_constructorSuccessCode = 6988 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesKHR( 6989 static_cast<VkDevice>( *device ), 6990 deferredOperation ? static_cast<VkDeferredOperationKHR>( **deferredOperation ) : 0, 6991 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 6992 1, 6993 reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ), 6994 m_allocator, 6995 reinterpret_cast<VkPipeline *>( &m_pipeline ) ) ); 6996 if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 6997 ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && 6998 ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) && 6999 ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 7000 { 7001 throwResultException( m_constructorSuccessCode, "vkCreateRayTracingPipelinesKHR" ); 7002 } 7003 } 7004 Pipeline(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7005 Pipeline( 7006 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7007 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & 7008 pipelineCache, 7009 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & createInfo, 7010 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7011 : m_device( *device ) 7012 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7013 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7014 , m_dispatcher( device.getDispatcher() ) 7015 { 7016 m_constructorSuccessCode = 7017 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesNV( 7018 static_cast<VkDevice>( *device ), 7019 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 7020 1, 7021 reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ), 7022 m_allocator, 7023 reinterpret_cast<VkPipeline *>( &m_pipeline ) ) ); 7024 if ( ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 7025 ( m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 7026 { 7027 throwResultException( m_constructorSuccessCode, "vkCreateRayTracingPipelinesNV" ); 7028 } 7029 } 7030 Pipeline(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPipeline pipeline,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7031 Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7032 VkPipeline pipeline, 7033 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7034 : m_pipeline( pipeline ) 7035 , m_device( *device ) 7036 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7037 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7038 , m_dispatcher( device.getDispatcher() ) 7039 {} 7040 Pipeline(VkPipeline pipeline,VkDevice device,VkAllocationCallbacks const * allocator,VULKAN_HPP_NAMESPACE::Result successCode,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher)7041 Pipeline( VkPipeline pipeline, 7042 VkDevice device, 7043 VkAllocationCallbacks const * allocator, 7044 VULKAN_HPP_NAMESPACE::Result successCode, 7045 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher ) 7046 : m_pipeline( pipeline ) 7047 , m_device( device ) 7048 , m_allocator( allocator ) 7049 , m_constructorSuccessCode( successCode ) 7050 , m_dispatcher( dispatcher ) 7051 {} Pipeline(std::nullptr_t)7052 Pipeline( std::nullptr_t ) {} 7053 ~Pipeline()7054 ~Pipeline() 7055 { 7056 if ( m_pipeline ) 7057 { 7058 getDispatcher()->vkDestroyPipeline( m_device, static_cast<VkPipeline>( m_pipeline ), m_allocator ); 7059 } 7060 } 7061 7062 Pipeline() = delete; 7063 Pipeline( Pipeline const & ) = delete; Pipeline(Pipeline && rhs)7064 Pipeline( Pipeline && rhs ) VULKAN_HPP_NOEXCEPT 7065 : m_pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} ) ) 7066 , m_device( rhs.m_device ) 7067 , m_allocator( rhs.m_allocator ) 7068 , m_dispatcher( rhs.m_dispatcher ) 7069 {} 7070 Pipeline & operator=( Pipeline const & ) = delete; operator =(Pipeline && rhs)7071 Pipeline & operator =( Pipeline && rhs ) VULKAN_HPP_NOEXCEPT 7072 { 7073 if ( this != &rhs ) 7074 { 7075 if ( m_pipeline ) 7076 { 7077 getDispatcher()->vkDestroyPipeline( m_device, static_cast<VkPipeline>( m_pipeline ), m_allocator ); 7078 } 7079 m_pipeline = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} ); 7080 m_device = rhs.m_device; 7081 m_allocator = rhs.m_allocator; 7082 m_dispatcher = rhs.m_dispatcher; 7083 } 7084 return *this; 7085 } 7086 operator *() const7087 VULKAN_HPP_NAMESPACE::Pipeline const & operator*() const VULKAN_HPP_NOEXCEPT 7088 { 7089 return m_pipeline; 7090 } 7091 getConstructorSuccessCode() const7092 VULKAN_HPP_NAMESPACE::Result getConstructorSuccessCode() const 7093 { 7094 return m_constructorSuccessCode; 7095 } 7096 getDispatcher() const7097 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7098 { 7099 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7100 return m_dispatcher; 7101 } 7102 7103 //=== VK_AMD_shader_info === 7104 7105 VULKAN_HPP_NODISCARD std::vector<uint8_t> 7106 getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, 7107 VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType ) const; 7108 7109 //=== VK_NV_ray_tracing === 7110 7111 template <typename T> 7112 VULKAN_HPP_NODISCARD std::vector<T> 7113 getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; 7114 7115 template <typename T> 7116 VULKAN_HPP_NODISCARD T getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const; 7117 7118 void compileDeferredNV( uint32_t shader ) const; 7119 7120 //=== VK_KHR_ray_tracing_pipeline === 7121 7122 template <typename T> 7123 VULKAN_HPP_NODISCARD std::vector<T> 7124 getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; 7125 7126 template <typename T> 7127 VULKAN_HPP_NODISCARD T getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const; 7128 7129 template <typename T> 7130 VULKAN_HPP_NODISCARD std::vector<T> getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, 7131 uint32_t groupCount, 7132 size_t dataSize ) const; 7133 7134 template <typename T> 7135 VULKAN_HPP_NODISCARD T getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, 7136 uint32_t groupCount ) const; 7137 7138 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getRayTracingShaderGroupStackSizeKHR( 7139 uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT; 7140 7141 private: 7142 VULKAN_HPP_NAMESPACE::Pipeline m_pipeline; 7143 VkDevice m_device; 7144 const VkAllocationCallbacks * m_allocator = nullptr; 7145 VULKAN_HPP_NAMESPACE::Result m_constructorSuccessCode; 7146 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7147 }; 7148 7149 class Pipelines : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> 7150 { 7151 public: Pipelines(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7152 Pipelines( 7153 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7154 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & 7155 pipelineCache, 7156 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, 7157 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7158 { 7159 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher(); 7160 std::vector<VkPipeline> pipelines( createInfos.size() ); 7161 VULKAN_HPP_NAMESPACE::Result result = 7162 static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateComputePipelines( 7163 static_cast<VkDevice>( *device ), 7164 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 7165 createInfos.size(), 7166 reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), 7167 reinterpret_cast<const VkAllocationCallbacks *>( 7168 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 7169 pipelines.data() ) ); 7170 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || 7171 ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 7172 { 7173 this->reserve( createInfos.size() ); 7174 for ( auto const & pipeline : pipelines ) 7175 { 7176 this->emplace_back( pipeline, 7177 static_cast<VkDevice>( *device ), 7178 reinterpret_cast<const VkAllocationCallbacks *>( 7179 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 7180 result, 7181 dispatcher ); 7182 } 7183 } 7184 else 7185 { 7186 throwResultException( result, "vkCreateComputePipelines" ); 7187 } 7188 } 7189 Pipelines(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7190 Pipelines( 7191 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7192 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & 7193 pipelineCache, 7194 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, 7195 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7196 { 7197 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher(); 7198 std::vector<VkPipeline> pipelines( createInfos.size() ); 7199 VULKAN_HPP_NAMESPACE::Result result = 7200 static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateGraphicsPipelines( 7201 static_cast<VkDevice>( *device ), 7202 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 7203 createInfos.size(), 7204 reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), 7205 reinterpret_cast<const VkAllocationCallbacks *>( 7206 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 7207 pipelines.data() ) ); 7208 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || 7209 ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 7210 { 7211 this->reserve( createInfos.size() ); 7212 for ( auto const & pipeline : pipelines ) 7213 { 7214 this->emplace_back( pipeline, 7215 static_cast<VkDevice>( *device ), 7216 reinterpret_cast<const VkAllocationCallbacks *>( 7217 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 7218 result, 7219 dispatcher ); 7220 } 7221 } 7222 else 7223 { 7224 throwResultException( result, "vkCreateGraphicsPipelines" ); 7225 } 7226 } 7227 Pipelines(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7228 Pipelines( 7229 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7230 VULKAN_HPP_NAMESPACE::Optional< 7231 const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, 7232 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & 7233 pipelineCache, 7234 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, 7235 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7236 { 7237 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher(); 7238 std::vector<VkPipeline> pipelines( createInfos.size() ); 7239 VULKAN_HPP_NAMESPACE::Result result = 7240 static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateRayTracingPipelinesKHR( 7241 static_cast<VkDevice>( *device ), 7242 deferredOperation ? static_cast<VkDeferredOperationKHR>( **deferredOperation ) : 0, 7243 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 7244 createInfos.size(), 7245 reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), 7246 reinterpret_cast<const VkAllocationCallbacks *>( 7247 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 7248 pipelines.data() ) ); 7249 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || 7250 ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) || 7251 ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) || 7252 ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 7253 { 7254 this->reserve( createInfos.size() ); 7255 for ( auto const & pipeline : pipelines ) 7256 { 7257 this->emplace_back( pipeline, 7258 static_cast<VkDevice>( *device ), 7259 reinterpret_cast<const VkAllocationCallbacks *>( 7260 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 7261 result, 7262 dispatcher ); 7263 } 7264 } 7265 else 7266 { 7267 throwResultException( result, "vkCreateRayTracingPipelinesKHR" ); 7268 } 7269 } 7270 Pipelines(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7271 Pipelines( 7272 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7273 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & 7274 pipelineCache, 7275 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, 7276 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7277 { 7278 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher(); 7279 std::vector<VkPipeline> pipelines( createInfos.size() ); 7280 VULKAN_HPP_NAMESPACE::Result result = 7281 static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateRayTracingPipelinesNV( 7282 static_cast<VkDevice>( *device ), 7283 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 7284 createInfos.size(), 7285 reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), 7286 reinterpret_cast<const VkAllocationCallbacks *>( 7287 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 7288 pipelines.data() ) ); 7289 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) || 7290 ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 7291 { 7292 this->reserve( createInfos.size() ); 7293 for ( auto const & pipeline : pipelines ) 7294 { 7295 this->emplace_back( pipeline, 7296 static_cast<VkDevice>( *device ), 7297 reinterpret_cast<const VkAllocationCallbacks *>( 7298 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 7299 result, 7300 dispatcher ); 7301 } 7302 } 7303 else 7304 { 7305 throwResultException( result, "vkCreateRayTracingPipelinesNV" ); 7306 } 7307 } 7308 7309 Pipelines() = delete; 7310 Pipelines( Pipelines const & ) = delete; 7311 Pipelines( Pipelines && rhs ) = default; 7312 Pipelines & operator=( Pipelines const & ) = delete; 7313 Pipelines & operator=( Pipelines && rhs ) = default; 7314 }; 7315 7316 class PipelineLayout 7317 { 7318 public: 7319 using CType = VkPipelineLayout; 7320 7321 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 7322 VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout; 7323 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7324 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout; 7325 7326 public: PipelineLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7327 PipelineLayout( 7328 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7329 VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & createInfo, 7330 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7331 : m_device( *device ) 7332 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7333 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7334 , m_dispatcher( device.getDispatcher() ) 7335 { 7336 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 7337 getDispatcher()->vkCreatePipelineLayout( static_cast<VkDevice>( *device ), 7338 reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ), 7339 m_allocator, 7340 reinterpret_cast<VkPipelineLayout *>( &m_pipelineLayout ) ) ); 7341 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 7342 { 7343 throwResultException( result, "vkCreatePipelineLayout" ); 7344 } 7345 } 7346 PipelineLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPipelineLayout pipelineLayout,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7347 PipelineLayout( 7348 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7349 VkPipelineLayout pipelineLayout, 7350 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7351 : m_pipelineLayout( pipelineLayout ) 7352 , m_device( *device ) 7353 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7354 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7355 , m_dispatcher( device.getDispatcher() ) 7356 {} 7357 PipelineLayout(std::nullptr_t)7358 PipelineLayout( std::nullptr_t ) {} 7359 ~PipelineLayout()7360 ~PipelineLayout() 7361 { 7362 if ( m_pipelineLayout ) 7363 { 7364 getDispatcher()->vkDestroyPipelineLayout( 7365 m_device, static_cast<VkPipelineLayout>( m_pipelineLayout ), m_allocator ); 7366 } 7367 } 7368 7369 PipelineLayout() = delete; 7370 PipelineLayout( PipelineLayout const & ) = delete; PipelineLayout(PipelineLayout && rhs)7371 PipelineLayout( PipelineLayout && rhs ) VULKAN_HPP_NOEXCEPT 7372 : m_pipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} ) ) 7373 , m_device( rhs.m_device ) 7374 , m_allocator( rhs.m_allocator ) 7375 , m_dispatcher( rhs.m_dispatcher ) 7376 {} 7377 PipelineLayout & operator=( PipelineLayout const & ) = delete; operator =(PipelineLayout && rhs)7378 PipelineLayout & operator =( PipelineLayout && rhs ) VULKAN_HPP_NOEXCEPT 7379 { 7380 if ( this != &rhs ) 7381 { 7382 if ( m_pipelineLayout ) 7383 { 7384 getDispatcher()->vkDestroyPipelineLayout( 7385 m_device, static_cast<VkPipelineLayout>( m_pipelineLayout ), m_allocator ); 7386 } 7387 m_pipelineLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} ); 7388 m_device = rhs.m_device; 7389 m_allocator = rhs.m_allocator; 7390 m_dispatcher = rhs.m_dispatcher; 7391 } 7392 return *this; 7393 } 7394 operator *() const7395 VULKAN_HPP_NAMESPACE::PipelineLayout const & operator*() const VULKAN_HPP_NOEXCEPT 7396 { 7397 return m_pipelineLayout; 7398 } 7399 getDispatcher() const7400 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7401 { 7402 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7403 return m_dispatcher; 7404 } 7405 7406 private: 7407 VULKAN_HPP_NAMESPACE::PipelineLayout m_pipelineLayout; 7408 VkDevice m_device; 7409 const VkAllocationCallbacks * m_allocator = nullptr; 7410 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7411 }; 7412 7413 class PrivateDataSlotEXT 7414 { 7415 public: 7416 using CType = VkPrivateDataSlotEXT; 7417 7418 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 7419 VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT; 7420 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7421 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 7422 7423 public: PrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7424 PrivateDataSlotEXT( 7425 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7426 VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT const & createInfo, 7427 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7428 : m_device( *device ) 7429 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7430 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7431 , m_dispatcher( device.getDispatcher() ) 7432 { 7433 VULKAN_HPP_NAMESPACE::Result result = 7434 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePrivateDataSlotEXT( 7435 static_cast<VkDevice>( *device ), 7436 reinterpret_cast<const VkPrivateDataSlotCreateInfoEXT *>( &createInfo ), 7437 m_allocator, 7438 reinterpret_cast<VkPrivateDataSlotEXT *>( &m_privateDataSlotEXT ) ) ); 7439 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 7440 { 7441 throwResultException( result, "vkCreatePrivateDataSlotEXT" ); 7442 } 7443 } 7444 PrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPrivateDataSlotEXT privateDataSlotEXT,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7445 PrivateDataSlotEXT( 7446 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7447 VkPrivateDataSlotEXT privateDataSlotEXT, 7448 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7449 : m_privateDataSlotEXT( privateDataSlotEXT ) 7450 , m_device( *device ) 7451 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7452 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7453 , m_dispatcher( device.getDispatcher() ) 7454 {} 7455 PrivateDataSlotEXT(std::nullptr_t)7456 PrivateDataSlotEXT( std::nullptr_t ) {} 7457 ~PrivateDataSlotEXT()7458 ~PrivateDataSlotEXT() 7459 { 7460 if ( m_privateDataSlotEXT ) 7461 { 7462 getDispatcher()->vkDestroyPrivateDataSlotEXT( 7463 m_device, static_cast<VkPrivateDataSlotEXT>( m_privateDataSlotEXT ), m_allocator ); 7464 } 7465 } 7466 7467 PrivateDataSlotEXT() = delete; 7468 PrivateDataSlotEXT( PrivateDataSlotEXT const & ) = delete; PrivateDataSlotEXT(PrivateDataSlotEXT && rhs)7469 PrivateDataSlotEXT( PrivateDataSlotEXT && rhs ) VULKAN_HPP_NOEXCEPT 7470 : m_privateDataSlotEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlotEXT, 7471 {} ) ) 7472 , m_device( rhs.m_device ) 7473 , m_allocator( rhs.m_allocator ) 7474 , m_dispatcher( rhs.m_dispatcher ) 7475 {} 7476 PrivateDataSlotEXT & operator=( PrivateDataSlotEXT const & ) = delete; operator =(PrivateDataSlotEXT && rhs)7477 PrivateDataSlotEXT & operator =( PrivateDataSlotEXT && rhs ) VULKAN_HPP_NOEXCEPT 7478 { 7479 if ( this != &rhs ) 7480 { 7481 if ( m_privateDataSlotEXT ) 7482 { 7483 getDispatcher()->vkDestroyPrivateDataSlotEXT( 7484 m_device, static_cast<VkPrivateDataSlotEXT>( m_privateDataSlotEXT ), m_allocator ); 7485 } 7486 m_privateDataSlotEXT = 7487 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlotEXT, {} ); 7488 m_device = rhs.m_device; 7489 m_allocator = rhs.m_allocator; 7490 m_dispatcher = rhs.m_dispatcher; 7491 } 7492 return *this; 7493 } 7494 operator *() const7495 VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const & operator*() const VULKAN_HPP_NOEXCEPT 7496 { 7497 return m_privateDataSlotEXT; 7498 } 7499 getDispatcher() const7500 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7501 { 7502 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7503 return m_dispatcher; 7504 } 7505 7506 private: 7507 VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT m_privateDataSlotEXT; 7508 VkDevice m_device; 7509 const VkAllocationCallbacks * m_allocator = nullptr; 7510 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7511 }; 7512 7513 class QueryPool 7514 { 7515 public: 7516 using CType = VkQueryPool; 7517 7518 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 7519 VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool; 7520 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7521 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool; 7522 7523 public: QueryPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7524 QueryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7525 VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & createInfo, 7526 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7527 : m_device( *device ) 7528 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7529 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7530 , m_dispatcher( device.getDispatcher() ) 7531 { 7532 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 7533 getDispatcher()->vkCreateQueryPool( static_cast<VkDevice>( *device ), 7534 reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ), 7535 m_allocator, 7536 reinterpret_cast<VkQueryPool *>( &m_queryPool ) ) ); 7537 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 7538 { 7539 throwResultException( result, "vkCreateQueryPool" ); 7540 } 7541 } 7542 QueryPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkQueryPool queryPool,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7543 QueryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7544 VkQueryPool queryPool, 7545 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7546 : m_queryPool( queryPool ) 7547 , m_device( *device ) 7548 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7549 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7550 , m_dispatcher( device.getDispatcher() ) 7551 {} 7552 QueryPool(std::nullptr_t)7553 QueryPool( std::nullptr_t ) {} 7554 ~QueryPool()7555 ~QueryPool() 7556 { 7557 if ( m_queryPool ) 7558 { 7559 getDispatcher()->vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( m_queryPool ), m_allocator ); 7560 } 7561 } 7562 7563 QueryPool() = delete; 7564 QueryPool( QueryPool const & ) = delete; QueryPool(QueryPool && rhs)7565 QueryPool( QueryPool && rhs ) VULKAN_HPP_NOEXCEPT 7566 : m_queryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} ) ) 7567 , m_device( rhs.m_device ) 7568 , m_allocator( rhs.m_allocator ) 7569 , m_dispatcher( rhs.m_dispatcher ) 7570 {} 7571 QueryPool & operator=( QueryPool const & ) = delete; operator =(QueryPool && rhs)7572 QueryPool & operator =( QueryPool && rhs ) VULKAN_HPP_NOEXCEPT 7573 { 7574 if ( this != &rhs ) 7575 { 7576 if ( m_queryPool ) 7577 { 7578 getDispatcher()->vkDestroyQueryPool( m_device, static_cast<VkQueryPool>( m_queryPool ), m_allocator ); 7579 } 7580 m_queryPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} ); 7581 m_device = rhs.m_device; 7582 m_allocator = rhs.m_allocator; 7583 m_dispatcher = rhs.m_dispatcher; 7584 } 7585 return *this; 7586 } 7587 operator *() const7588 VULKAN_HPP_NAMESPACE::QueryPool const & operator*() const VULKAN_HPP_NOEXCEPT 7589 { 7590 return m_queryPool; 7591 } 7592 getDispatcher() const7593 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7594 { 7595 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7596 return m_dispatcher; 7597 } 7598 7599 //=== VK_VERSION_1_0 === 7600 7601 template <typename T> 7602 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, std::vector<T>> 7603 getResults( uint32_t firstQuery, 7604 uint32_t queryCount, 7605 size_t dataSize, 7606 VULKAN_HPP_NAMESPACE::DeviceSize stride, 7607 VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 7608 7609 template <typename T> 7610 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, T> 7611 getResult( uint32_t firstQuery, 7612 uint32_t queryCount, 7613 VULKAN_HPP_NAMESPACE::DeviceSize stride, 7614 VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 7615 7616 //=== VK_VERSION_1_2 === 7617 7618 void reset( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT; 7619 7620 //=== VK_EXT_host_query_reset === 7621 7622 void resetEXT( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT; 7623 7624 private: 7625 VULKAN_HPP_NAMESPACE::QueryPool m_queryPool; 7626 VkDevice m_device; 7627 const VkAllocationCallbacks * m_allocator = nullptr; 7628 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7629 }; 7630 7631 class Queue 7632 { 7633 public: 7634 using CType = VkQueue; 7635 7636 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 7637 VULKAN_HPP_NAMESPACE::ObjectType::eQueue; 7638 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7639 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue; 7640 7641 public: Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,uint32_t queueFamilyIndex,uint32_t queueIndex)7642 Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7643 uint32_t queueFamilyIndex, 7644 uint32_t queueIndex ) 7645 : m_dispatcher( device.getDispatcher() ) 7646 { 7647 getDispatcher()->vkGetDeviceQueue( 7648 static_cast<VkDevice>( *device ), queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( &m_queue ) ); 7649 } 7650 Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo)7651 Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7652 VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) 7653 : m_dispatcher( device.getDispatcher() ) 7654 { 7655 getDispatcher()->vkGetDeviceQueue2( static_cast<VkDevice>( *device ), 7656 reinterpret_cast<const VkDeviceQueueInfo2 *>( &queueInfo ), 7657 reinterpret_cast<VkQueue *>( &m_queue ) ); 7658 } 7659 Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkQueue queue)7660 Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkQueue queue ) 7661 : m_queue( queue ), m_dispatcher( device.getDispatcher() ) 7662 {} 7663 Queue(std::nullptr_t)7664 Queue( std::nullptr_t ) {} 7665 7666 Queue() = delete; 7667 Queue( Queue const & ) = delete; Queue(Queue && rhs)7668 Queue( Queue && rhs ) VULKAN_HPP_NOEXCEPT 7669 : m_queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queue, {} ) ) 7670 , m_dispatcher( rhs.m_dispatcher ) 7671 {} 7672 Queue & operator=( Queue const & ) = delete; operator =(Queue && rhs)7673 Queue & operator =( Queue && rhs ) VULKAN_HPP_NOEXCEPT 7674 { 7675 if ( this != &rhs ) 7676 { 7677 m_queue = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queue, {} ); 7678 m_dispatcher = rhs.m_dispatcher; 7679 } 7680 return *this; 7681 } 7682 operator *() const7683 VULKAN_HPP_NAMESPACE::Queue const & operator*() const VULKAN_HPP_NOEXCEPT 7684 { 7685 return m_queue; 7686 } 7687 getDispatcher() const7688 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7689 { 7690 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7691 return m_dispatcher; 7692 } 7693 7694 //=== VK_VERSION_1_0 === 7695 7696 void submit( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits, 7697 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 7698 7699 void waitIdle() const; 7700 7701 void bindSparse( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo, 7702 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 7703 7704 //=== VK_KHR_swapchain === 7705 7706 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 7707 presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo ) const; 7708 7709 //=== VK_EXT_debug_utils === 7710 7711 void 7712 beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; 7713 7714 void endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT; 7715 7716 void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const 7717 VULKAN_HPP_NOEXCEPT; 7718 7719 //=== VK_NV_device_diagnostic_checkpoints === 7720 7721 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> 7722 getCheckpointDataNV() const VULKAN_HPP_NOEXCEPT; 7723 7724 //=== VK_INTEL_performance_query === 7725 7726 void setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const; 7727 7728 //=== VK_KHR_synchronization2 === 7729 7730 void submit2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR> const & submits, 7731 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 7732 7733 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> 7734 getCheckpointData2NV() const VULKAN_HPP_NOEXCEPT; 7735 7736 private: 7737 VULKAN_HPP_NAMESPACE::Queue m_queue; 7738 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7739 }; 7740 7741 class RenderPass 7742 { 7743 public: 7744 using CType = VkRenderPass; 7745 7746 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 7747 VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass; 7748 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7749 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass; 7750 7751 public: RenderPass(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7752 RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7753 VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & createInfo, 7754 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7755 : m_device( *device ) 7756 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7757 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7758 , m_dispatcher( device.getDispatcher() ) 7759 { 7760 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 7761 getDispatcher()->vkCreateRenderPass( static_cast<VkDevice>( *device ), 7762 reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ), 7763 m_allocator, 7764 reinterpret_cast<VkRenderPass *>( &m_renderPass ) ) ); 7765 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 7766 { 7767 throwResultException( result, "vkCreateRenderPass" ); 7768 } 7769 } 7770 RenderPass(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7771 RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7772 VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo, 7773 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7774 : m_device( *device ) 7775 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7776 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7777 , m_dispatcher( device.getDispatcher() ) 7778 { 7779 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 7780 getDispatcher()->vkCreateRenderPass2( static_cast<VkDevice>( *device ), 7781 reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), 7782 m_allocator, 7783 reinterpret_cast<VkRenderPass *>( &m_renderPass ) ) ); 7784 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 7785 { 7786 throwResultException( result, "vkCreateRenderPass2" ); 7787 } 7788 } 7789 RenderPass(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkRenderPass renderPass,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7790 RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7791 VkRenderPass renderPass, 7792 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7793 : m_renderPass( renderPass ) 7794 , m_device( *device ) 7795 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7796 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7797 , m_dispatcher( device.getDispatcher() ) 7798 {} 7799 RenderPass(std::nullptr_t)7800 RenderPass( std::nullptr_t ) {} 7801 ~RenderPass()7802 ~RenderPass() 7803 { 7804 if ( m_renderPass ) 7805 { 7806 getDispatcher()->vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( m_renderPass ), m_allocator ); 7807 } 7808 } 7809 7810 RenderPass() = delete; 7811 RenderPass( RenderPass const & ) = delete; RenderPass(RenderPass && rhs)7812 RenderPass( RenderPass && rhs ) VULKAN_HPP_NOEXCEPT 7813 : m_renderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} ) ) 7814 , m_device( rhs.m_device ) 7815 , m_allocator( rhs.m_allocator ) 7816 , m_dispatcher( rhs.m_dispatcher ) 7817 {} 7818 RenderPass & operator=( RenderPass const & ) = delete; operator =(RenderPass && rhs)7819 RenderPass & operator =( RenderPass && rhs ) VULKAN_HPP_NOEXCEPT 7820 { 7821 if ( this != &rhs ) 7822 { 7823 if ( m_renderPass ) 7824 { 7825 getDispatcher()->vkDestroyRenderPass( m_device, static_cast<VkRenderPass>( m_renderPass ), m_allocator ); 7826 } 7827 m_renderPass = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} ); 7828 m_device = rhs.m_device; 7829 m_allocator = rhs.m_allocator; 7830 m_dispatcher = rhs.m_dispatcher; 7831 } 7832 return *this; 7833 } 7834 operator *() const7835 VULKAN_HPP_NAMESPACE::RenderPass const & operator*() const VULKAN_HPP_NOEXCEPT 7836 { 7837 return m_renderPass; 7838 } 7839 getDispatcher() const7840 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7841 { 7842 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7843 return m_dispatcher; 7844 } 7845 7846 //=== VK_VERSION_1_0 === 7847 7848 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT; 7849 7850 //=== VK_HUAWEI_subpass_shading === 7851 7852 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, VULKAN_HPP_NAMESPACE::Extent2D> 7853 getSubpassShadingMaxWorkgroupSizeHUAWEI() const; 7854 7855 private: 7856 VULKAN_HPP_NAMESPACE::RenderPass m_renderPass; 7857 VkDevice m_device; 7858 const VkAllocationCallbacks * m_allocator = nullptr; 7859 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7860 }; 7861 7862 class Sampler 7863 { 7864 public: 7865 using CType = VkSampler; 7866 7867 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 7868 VULKAN_HPP_NAMESPACE::ObjectType::eSampler; 7869 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7870 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler; 7871 7872 public: Sampler(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7873 Sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7874 VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & createInfo, 7875 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7876 : m_device( *device ) 7877 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7878 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7879 , m_dispatcher( device.getDispatcher() ) 7880 { 7881 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 7882 getDispatcher()->vkCreateSampler( static_cast<VkDevice>( *device ), 7883 reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ), 7884 m_allocator, 7885 reinterpret_cast<VkSampler *>( &m_sampler ) ) ); 7886 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 7887 { 7888 throwResultException( result, "vkCreateSampler" ); 7889 } 7890 } 7891 Sampler(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkSampler sampler,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7892 Sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7893 VkSampler sampler, 7894 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7895 : m_sampler( sampler ) 7896 , m_device( *device ) 7897 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7898 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7899 , m_dispatcher( device.getDispatcher() ) 7900 {} 7901 Sampler(std::nullptr_t)7902 Sampler( std::nullptr_t ) {} 7903 ~Sampler()7904 ~Sampler() 7905 { 7906 if ( m_sampler ) 7907 { 7908 getDispatcher()->vkDestroySampler( m_device, static_cast<VkSampler>( m_sampler ), m_allocator ); 7909 } 7910 } 7911 7912 Sampler() = delete; 7913 Sampler( Sampler const & ) = delete; Sampler(Sampler && rhs)7914 Sampler( Sampler && rhs ) VULKAN_HPP_NOEXCEPT 7915 : m_sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} ) ) 7916 , m_device( rhs.m_device ) 7917 , m_allocator( rhs.m_allocator ) 7918 , m_dispatcher( rhs.m_dispatcher ) 7919 {} 7920 Sampler & operator=( Sampler const & ) = delete; operator =(Sampler && rhs)7921 Sampler & operator =( Sampler && rhs ) VULKAN_HPP_NOEXCEPT 7922 { 7923 if ( this != &rhs ) 7924 { 7925 if ( m_sampler ) 7926 { 7927 getDispatcher()->vkDestroySampler( m_device, static_cast<VkSampler>( m_sampler ), m_allocator ); 7928 } 7929 m_sampler = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} ); 7930 m_device = rhs.m_device; 7931 m_allocator = rhs.m_allocator; 7932 m_dispatcher = rhs.m_dispatcher; 7933 } 7934 return *this; 7935 } 7936 operator *() const7937 VULKAN_HPP_NAMESPACE::Sampler const & operator*() const VULKAN_HPP_NOEXCEPT 7938 { 7939 return m_sampler; 7940 } 7941 getDispatcher() const7942 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7943 { 7944 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7945 return m_dispatcher; 7946 } 7947 7948 private: 7949 VULKAN_HPP_NAMESPACE::Sampler m_sampler; 7950 VkDevice m_device; 7951 const VkAllocationCallbacks * m_allocator = nullptr; 7952 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7953 }; 7954 7955 class SamplerYcbcrConversion 7956 { 7957 public: 7958 using CType = VkSamplerYcbcrConversion; 7959 7960 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 7961 VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion; 7962 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7963 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion; 7964 7965 public: SamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7966 SamplerYcbcrConversion( 7967 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7968 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo, 7969 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7970 : m_device( *device ) 7971 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7972 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7973 , m_dispatcher( device.getDispatcher() ) 7974 { 7975 VULKAN_HPP_NAMESPACE::Result result = 7976 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSamplerYcbcrConversion( 7977 static_cast<VkDevice>( *device ), 7978 reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), 7979 m_allocator, 7980 reinterpret_cast<VkSamplerYcbcrConversion *>( &m_samplerYcbcrConversion ) ) ); 7981 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 7982 { 7983 throwResultException( result, "vkCreateSamplerYcbcrConversion" ); 7984 } 7985 } 7986 SamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkSamplerYcbcrConversion samplerYcbcrConversion,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7987 SamplerYcbcrConversion( 7988 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7989 VkSamplerYcbcrConversion samplerYcbcrConversion, 7990 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7991 : m_samplerYcbcrConversion( samplerYcbcrConversion ) 7992 , m_device( *device ) 7993 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 7994 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 7995 , m_dispatcher( device.getDispatcher() ) 7996 {} 7997 SamplerYcbcrConversion(std::nullptr_t)7998 SamplerYcbcrConversion( std::nullptr_t ) {} 7999 ~SamplerYcbcrConversion()8000 ~SamplerYcbcrConversion() 8001 { 8002 if ( m_samplerYcbcrConversion ) 8003 { 8004 getDispatcher()->vkDestroySamplerYcbcrConversion( 8005 m_device, static_cast<VkSamplerYcbcrConversion>( m_samplerYcbcrConversion ), m_allocator ); 8006 } 8007 } 8008 8009 SamplerYcbcrConversion() = delete; 8010 SamplerYcbcrConversion( SamplerYcbcrConversion const & ) = delete; SamplerYcbcrConversion(SamplerYcbcrConversion && rhs)8011 SamplerYcbcrConversion( SamplerYcbcrConversion && rhs ) VULKAN_HPP_NOEXCEPT 8012 : m_samplerYcbcrConversion( 8013 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_samplerYcbcrConversion, {} ) ) 8014 , m_device( rhs.m_device ) 8015 , m_allocator( rhs.m_allocator ) 8016 , m_dispatcher( rhs.m_dispatcher ) 8017 {} 8018 SamplerYcbcrConversion & operator=( SamplerYcbcrConversion const & ) = delete; operator =(SamplerYcbcrConversion && rhs)8019 SamplerYcbcrConversion & operator=( SamplerYcbcrConversion && rhs ) VULKAN_HPP_NOEXCEPT 8020 { 8021 if ( this != &rhs ) 8022 { 8023 if ( m_samplerYcbcrConversion ) 8024 { 8025 getDispatcher()->vkDestroySamplerYcbcrConversion( 8026 m_device, static_cast<VkSamplerYcbcrConversion>( m_samplerYcbcrConversion ), m_allocator ); 8027 } 8028 m_samplerYcbcrConversion = 8029 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_samplerYcbcrConversion, {} ); 8030 m_device = rhs.m_device; 8031 m_allocator = rhs.m_allocator; 8032 m_dispatcher = rhs.m_dispatcher; 8033 } 8034 return *this; 8035 } 8036 operator *() const8037 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & operator*() const VULKAN_HPP_NOEXCEPT 8038 { 8039 return m_samplerYcbcrConversion; 8040 } 8041 getDispatcher() const8042 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8043 { 8044 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8045 return m_dispatcher; 8046 } 8047 8048 private: 8049 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion m_samplerYcbcrConversion; 8050 VkDevice m_device; 8051 const VkAllocationCallbacks * m_allocator = nullptr; 8052 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8053 }; 8054 8055 class Semaphore 8056 { 8057 public: 8058 using CType = VkSemaphore; 8059 8060 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 8061 VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore; 8062 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8063 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore; 8064 8065 public: Semaphore(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8066 Semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8067 VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & createInfo, 8068 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8069 : m_device( *device ) 8070 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8071 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8072 , m_dispatcher( device.getDispatcher() ) 8073 { 8074 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 8075 getDispatcher()->vkCreateSemaphore( static_cast<VkDevice>( *device ), 8076 reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ), 8077 m_allocator, 8078 reinterpret_cast<VkSemaphore *>( &m_semaphore ) ) ); 8079 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8080 { 8081 throwResultException( result, "vkCreateSemaphore" ); 8082 } 8083 } 8084 Semaphore(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkSemaphore semaphore,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8085 Semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8086 VkSemaphore semaphore, 8087 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8088 : m_semaphore( semaphore ) 8089 , m_device( *device ) 8090 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8091 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8092 , m_dispatcher( device.getDispatcher() ) 8093 {} 8094 Semaphore(std::nullptr_t)8095 Semaphore( std::nullptr_t ) {} 8096 ~Semaphore()8097 ~Semaphore() 8098 { 8099 if ( m_semaphore ) 8100 { 8101 getDispatcher()->vkDestroySemaphore( m_device, static_cast<VkSemaphore>( m_semaphore ), m_allocator ); 8102 } 8103 } 8104 8105 Semaphore() = delete; 8106 Semaphore( Semaphore const & ) = delete; Semaphore(Semaphore && rhs)8107 Semaphore( Semaphore && rhs ) VULKAN_HPP_NOEXCEPT 8108 : m_semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} ) ) 8109 , m_device( rhs.m_device ) 8110 , m_allocator( rhs.m_allocator ) 8111 , m_dispatcher( rhs.m_dispatcher ) 8112 {} 8113 Semaphore & operator=( Semaphore const & ) = delete; operator =(Semaphore && rhs)8114 Semaphore & operator =( Semaphore && rhs ) VULKAN_HPP_NOEXCEPT 8115 { 8116 if ( this != &rhs ) 8117 { 8118 if ( m_semaphore ) 8119 { 8120 getDispatcher()->vkDestroySemaphore( m_device, static_cast<VkSemaphore>( m_semaphore ), m_allocator ); 8121 } 8122 m_semaphore = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} ); 8123 m_device = rhs.m_device; 8124 m_allocator = rhs.m_allocator; 8125 m_dispatcher = rhs.m_dispatcher; 8126 } 8127 return *this; 8128 } 8129 operator *() const8130 VULKAN_HPP_NAMESPACE::Semaphore const & operator*() const VULKAN_HPP_NOEXCEPT 8131 { 8132 return m_semaphore; 8133 } 8134 getDispatcher() const8135 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8136 { 8137 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8138 return m_dispatcher; 8139 } 8140 8141 //=== VK_VERSION_1_2 === 8142 8143 VULKAN_HPP_NODISCARD uint64_t getCounterValue() const; 8144 8145 //=== VK_KHR_timeline_semaphore === 8146 8147 VULKAN_HPP_NODISCARD uint64_t getCounterValueKHR() const; 8148 8149 private: 8150 VULKAN_HPP_NAMESPACE::Semaphore m_semaphore; 8151 VkDevice m_device; 8152 const VkAllocationCallbacks * m_allocator = nullptr; 8153 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8154 }; 8155 8156 class ShaderModule 8157 { 8158 public: 8159 using CType = VkShaderModule; 8160 8161 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 8162 VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule; 8163 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8164 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule; 8165 8166 public: ShaderModule(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8167 ShaderModule( 8168 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8169 VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & createInfo, 8170 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8171 : m_device( *device ) 8172 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8173 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8174 , m_dispatcher( device.getDispatcher() ) 8175 { 8176 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 8177 getDispatcher()->vkCreateShaderModule( static_cast<VkDevice>( *device ), 8178 reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ), 8179 m_allocator, 8180 reinterpret_cast<VkShaderModule *>( &m_shaderModule ) ) ); 8181 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8182 { 8183 throwResultException( result, "vkCreateShaderModule" ); 8184 } 8185 } 8186 ShaderModule(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkShaderModule shaderModule,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8187 ShaderModule( 8188 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8189 VkShaderModule shaderModule, 8190 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8191 : m_shaderModule( shaderModule ) 8192 , m_device( *device ) 8193 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8194 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8195 , m_dispatcher( device.getDispatcher() ) 8196 {} 8197 ShaderModule(std::nullptr_t)8198 ShaderModule( std::nullptr_t ) {} 8199 ~ShaderModule()8200 ~ShaderModule() 8201 { 8202 if ( m_shaderModule ) 8203 { 8204 getDispatcher()->vkDestroyShaderModule( 8205 m_device, static_cast<VkShaderModule>( m_shaderModule ), m_allocator ); 8206 } 8207 } 8208 8209 ShaderModule() = delete; 8210 ShaderModule( ShaderModule const & ) = delete; ShaderModule(ShaderModule && rhs)8211 ShaderModule( ShaderModule && rhs ) VULKAN_HPP_NOEXCEPT 8212 : m_shaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} ) ) 8213 , m_device( rhs.m_device ) 8214 , m_allocator( rhs.m_allocator ) 8215 , m_dispatcher( rhs.m_dispatcher ) 8216 {} 8217 ShaderModule & operator=( ShaderModule const & ) = delete; operator =(ShaderModule && rhs)8218 ShaderModule & operator =( ShaderModule && rhs ) VULKAN_HPP_NOEXCEPT 8219 { 8220 if ( this != &rhs ) 8221 { 8222 if ( m_shaderModule ) 8223 { 8224 getDispatcher()->vkDestroyShaderModule( 8225 m_device, static_cast<VkShaderModule>( m_shaderModule ), m_allocator ); 8226 } 8227 m_shaderModule = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} ); 8228 m_device = rhs.m_device; 8229 m_allocator = rhs.m_allocator; 8230 m_dispatcher = rhs.m_dispatcher; 8231 } 8232 return *this; 8233 } 8234 operator *() const8235 VULKAN_HPP_NAMESPACE::ShaderModule const & operator*() const VULKAN_HPP_NOEXCEPT 8236 { 8237 return m_shaderModule; 8238 } 8239 getDispatcher() const8240 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8241 { 8242 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8243 return m_dispatcher; 8244 } 8245 8246 private: 8247 VULKAN_HPP_NAMESPACE::ShaderModule m_shaderModule; 8248 VkDevice m_device; 8249 const VkAllocationCallbacks * m_allocator = nullptr; 8250 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8251 }; 8252 8253 class SurfaceKHR 8254 { 8255 public: 8256 using CType = VkSurfaceKHR; 8257 8258 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 8259 VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR; 8260 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8261 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR; 8262 8263 public: 8264 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8265 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8266 VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & createInfo, 8267 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8268 : m_instance( *instance ) 8269 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8270 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8271 , m_dispatcher( instance.getDispatcher() ) 8272 { 8273 VULKAN_HPP_NAMESPACE::Result result = 8274 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAndroidSurfaceKHR( 8275 static_cast<VkInstance>( *instance ), 8276 reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ), 8277 m_allocator, 8278 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8279 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8280 { 8281 throwResultException( result, "vkCreateAndroidSurfaceKHR" ); 8282 } 8283 } 8284 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 8285 8286 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8287 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8288 VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & createInfo, 8289 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8290 : m_instance( *instance ) 8291 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8292 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8293 , m_dispatcher( instance.getDispatcher() ) 8294 { 8295 VULKAN_HPP_NAMESPACE::Result result = 8296 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDirectFBSurfaceEXT( 8297 static_cast<VkInstance>( *instance ), 8298 reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ), 8299 m_allocator, 8300 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8301 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8302 { 8303 throwResultException( result, "vkCreateDirectFBSurfaceEXT" ); 8304 } 8305 } 8306 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 8307 SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8308 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8309 VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & createInfo, 8310 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8311 : m_instance( *instance ) 8312 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8313 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8314 , m_dispatcher( instance.getDispatcher() ) 8315 { 8316 VULKAN_HPP_NAMESPACE::Result result = 8317 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDisplayPlaneSurfaceKHR( 8318 static_cast<VkInstance>( *instance ), 8319 reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ), 8320 m_allocator, 8321 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8322 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8323 { 8324 throwResultException( result, "vkCreateDisplayPlaneSurfaceKHR" ); 8325 } 8326 } 8327 SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8328 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8329 VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & createInfo, 8330 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8331 : m_instance( *instance ) 8332 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8333 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8334 , m_dispatcher( instance.getDispatcher() ) 8335 { 8336 VULKAN_HPP_NAMESPACE::Result result = 8337 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateHeadlessSurfaceEXT( 8338 static_cast<VkInstance>( *instance ), 8339 reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ), 8340 m_allocator, 8341 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8342 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8343 { 8344 throwResultException( result, "vkCreateHeadlessSurfaceEXT" ); 8345 } 8346 } 8347 8348 # if defined( VK_USE_PLATFORM_IOS_MVK ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8349 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8350 VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & createInfo, 8351 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8352 : m_instance( *instance ) 8353 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8354 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8355 , m_dispatcher( instance.getDispatcher() ) 8356 { 8357 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 8358 getDispatcher()->vkCreateIOSSurfaceMVK( static_cast<VkInstance>( *instance ), 8359 reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ), 8360 m_allocator, 8361 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8362 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8363 { 8364 throwResultException( result, "vkCreateIOSSurfaceMVK" ); 8365 } 8366 } 8367 # endif /*VK_USE_PLATFORM_IOS_MVK*/ 8368 8369 # if defined( VK_USE_PLATFORM_FUCHSIA ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8370 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8371 VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, 8372 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8373 : m_instance( *instance ) 8374 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8375 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8376 , m_dispatcher( instance.getDispatcher() ) 8377 { 8378 VULKAN_HPP_NAMESPACE::Result result = 8379 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateImagePipeSurfaceFUCHSIA( 8380 static_cast<VkInstance>( *instance ), 8381 reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ), 8382 m_allocator, 8383 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8384 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8385 { 8386 throwResultException( result, "vkCreateImagePipeSurfaceFUCHSIA" ); 8387 } 8388 } 8389 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 8390 8391 # if defined( VK_USE_PLATFORM_MACOS_MVK ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8392 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8393 VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & createInfo, 8394 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8395 : m_instance( *instance ) 8396 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8397 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8398 , m_dispatcher( instance.getDispatcher() ) 8399 { 8400 VULKAN_HPP_NAMESPACE::Result result = 8401 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateMacOSSurfaceMVK( 8402 static_cast<VkInstance>( *instance ), 8403 reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ), 8404 m_allocator, 8405 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8406 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8407 { 8408 throwResultException( result, "vkCreateMacOSSurfaceMVK" ); 8409 } 8410 } 8411 # endif /*VK_USE_PLATFORM_MACOS_MVK*/ 8412 8413 # if defined( VK_USE_PLATFORM_METAL_EXT ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8414 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8415 VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & createInfo, 8416 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8417 : m_instance( *instance ) 8418 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8419 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8420 , m_dispatcher( instance.getDispatcher() ) 8421 { 8422 VULKAN_HPP_NAMESPACE::Result result = 8423 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateMetalSurfaceEXT( 8424 static_cast<VkInstance>( *instance ), 8425 reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ), 8426 m_allocator, 8427 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8428 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8429 { 8430 throwResultException( result, "vkCreateMetalSurfaceEXT" ); 8431 } 8432 } 8433 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 8434 8435 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8436 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8437 VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & createInfo, 8438 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8439 : m_instance( *instance ) 8440 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8441 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8442 , m_dispatcher( instance.getDispatcher() ) 8443 { 8444 VULKAN_HPP_NAMESPACE::Result result = 8445 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateScreenSurfaceQNX( 8446 static_cast<VkInstance>( *instance ), 8447 reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ), 8448 m_allocator, 8449 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8450 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8451 { 8452 throwResultException( result, "vkCreateScreenSurfaceQNX" ); 8453 } 8454 } 8455 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 8456 8457 # if defined( VK_USE_PLATFORM_GGP ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8458 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8459 VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & createInfo, 8460 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8461 : m_instance( *instance ) 8462 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8463 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8464 , m_dispatcher( instance.getDispatcher() ) 8465 { 8466 VULKAN_HPP_NAMESPACE::Result result = 8467 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateStreamDescriptorSurfaceGGP( 8468 static_cast<VkInstance>( *instance ), 8469 reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ), 8470 m_allocator, 8471 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8472 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8473 { 8474 throwResultException( result, "vkCreateStreamDescriptorSurfaceGGP" ); 8475 } 8476 } 8477 # endif /*VK_USE_PLATFORM_GGP*/ 8478 8479 # if defined( VK_USE_PLATFORM_VI_NN ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8480 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8481 VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & createInfo, 8482 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8483 : m_instance( *instance ) 8484 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8485 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8486 , m_dispatcher( instance.getDispatcher() ) 8487 { 8488 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 8489 getDispatcher()->vkCreateViSurfaceNN( static_cast<VkInstance>( *instance ), 8490 reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ), 8491 m_allocator, 8492 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8493 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8494 { 8495 throwResultException( result, "vkCreateViSurfaceNN" ); 8496 } 8497 } 8498 # endif /*VK_USE_PLATFORM_VI_NN*/ 8499 8500 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8501 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8502 VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & createInfo, 8503 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8504 : m_instance( *instance ) 8505 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8506 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8507 , m_dispatcher( instance.getDispatcher() ) 8508 { 8509 VULKAN_HPP_NAMESPACE::Result result = 8510 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateWaylandSurfaceKHR( 8511 static_cast<VkInstance>( *instance ), 8512 reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ), 8513 m_allocator, 8514 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8515 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8516 { 8517 throwResultException( result, "vkCreateWaylandSurfaceKHR" ); 8518 } 8519 } 8520 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 8521 8522 # if defined( VK_USE_PLATFORM_WIN32_KHR ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8523 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8524 VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & createInfo, 8525 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8526 : m_instance( *instance ) 8527 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8528 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8529 , m_dispatcher( instance.getDispatcher() ) 8530 { 8531 VULKAN_HPP_NAMESPACE::Result result = 8532 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateWin32SurfaceKHR( 8533 static_cast<VkInstance>( *instance ), 8534 reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ), 8535 m_allocator, 8536 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8537 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8538 { 8539 throwResultException( result, "vkCreateWin32SurfaceKHR" ); 8540 } 8541 } 8542 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 8543 8544 # if defined( VK_USE_PLATFORM_XCB_KHR ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8545 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8546 VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & createInfo, 8547 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8548 : m_instance( *instance ) 8549 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8550 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8551 , m_dispatcher( instance.getDispatcher() ) 8552 { 8553 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 8554 getDispatcher()->vkCreateXcbSurfaceKHR( static_cast<VkInstance>( *instance ), 8555 reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ), 8556 m_allocator, 8557 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8558 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8559 { 8560 throwResultException( result, "vkCreateXcbSurfaceKHR" ); 8561 } 8562 } 8563 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 8564 8565 # if defined( VK_USE_PLATFORM_XLIB_KHR ) SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8566 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8567 VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & createInfo, 8568 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8569 : m_instance( *instance ) 8570 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8571 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8572 , m_dispatcher( instance.getDispatcher() ) 8573 { 8574 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 8575 getDispatcher()->vkCreateXlibSurfaceKHR( static_cast<VkInstance>( *instance ), 8576 reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ), 8577 m_allocator, 8578 reinterpret_cast<VkSurfaceKHR *>( &m_surfaceKHR ) ) ); 8579 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8580 { 8581 throwResultException( result, "vkCreateXlibSurfaceKHR" ); 8582 } 8583 } 8584 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 8585 SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VkSurfaceKHR surfaceKHR,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8586 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 8587 VkSurfaceKHR surfaceKHR, 8588 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8589 : m_surfaceKHR( surfaceKHR ) 8590 , m_instance( *instance ) 8591 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8592 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8593 , m_dispatcher( instance.getDispatcher() ) 8594 {} 8595 SurfaceKHR(std::nullptr_t)8596 SurfaceKHR( std::nullptr_t ) {} 8597 ~SurfaceKHR()8598 ~SurfaceKHR() 8599 { 8600 if ( m_surfaceKHR ) 8601 { 8602 getDispatcher()->vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( m_surfaceKHR ), m_allocator ); 8603 } 8604 } 8605 8606 SurfaceKHR() = delete; 8607 SurfaceKHR( SurfaceKHR const & ) = delete; SurfaceKHR(SurfaceKHR && rhs)8608 SurfaceKHR( SurfaceKHR && rhs ) VULKAN_HPP_NOEXCEPT 8609 : m_surfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surfaceKHR, {} ) ) 8610 , m_instance( rhs.m_instance ) 8611 , m_allocator( rhs.m_allocator ) 8612 , m_dispatcher( rhs.m_dispatcher ) 8613 {} 8614 SurfaceKHR & operator=( SurfaceKHR const & ) = delete; operator =(SurfaceKHR && rhs)8615 SurfaceKHR & operator =( SurfaceKHR && rhs ) VULKAN_HPP_NOEXCEPT 8616 { 8617 if ( this != &rhs ) 8618 { 8619 if ( m_surfaceKHR ) 8620 { 8621 getDispatcher()->vkDestroySurfaceKHR( m_instance, static_cast<VkSurfaceKHR>( m_surfaceKHR ), m_allocator ); 8622 } 8623 m_surfaceKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surfaceKHR, {} ); 8624 m_instance = rhs.m_instance; 8625 m_allocator = rhs.m_allocator; 8626 m_dispatcher = rhs.m_dispatcher; 8627 } 8628 return *this; 8629 } 8630 operator *() const8631 VULKAN_HPP_NAMESPACE::SurfaceKHR const & operator*() const VULKAN_HPP_NOEXCEPT 8632 { 8633 return m_surfaceKHR; 8634 } 8635 getDispatcher() const8636 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 8637 { 8638 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8639 return m_dispatcher; 8640 } 8641 8642 private: 8643 VULKAN_HPP_NAMESPACE::SurfaceKHR m_surfaceKHR; 8644 VkInstance m_instance; 8645 const VkAllocationCallbacks * m_allocator = nullptr; 8646 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 8647 }; 8648 8649 class SwapchainKHR 8650 { 8651 public: 8652 using CType = VkSwapchainKHR; 8653 8654 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 8655 VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR; 8656 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8657 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR; 8658 8659 public: SwapchainKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8660 SwapchainKHR( 8661 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8662 VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo, 8663 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8664 : m_device( *device ) 8665 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8666 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8667 , m_dispatcher( device.getDispatcher() ) 8668 { 8669 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 8670 getDispatcher()->vkCreateSwapchainKHR( static_cast<VkDevice>( *device ), 8671 reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), 8672 m_allocator, 8673 reinterpret_cast<VkSwapchainKHR *>( &m_swapchainKHR ) ) ); 8674 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8675 { 8676 throwResultException( result, "vkCreateSwapchainKHR" ); 8677 } 8678 } 8679 SwapchainKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkSwapchainKHR swapchainKHR,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8680 SwapchainKHR( 8681 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8682 VkSwapchainKHR swapchainKHR, 8683 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8684 : m_swapchainKHR( swapchainKHR ) 8685 , m_device( *device ) 8686 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8687 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8688 , m_dispatcher( device.getDispatcher() ) 8689 {} 8690 SwapchainKHR(VkSwapchainKHR swapchainKHR,VkDevice device,VkAllocationCallbacks const * allocator,VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher)8691 SwapchainKHR( VkSwapchainKHR swapchainKHR, 8692 VkDevice device, 8693 VkAllocationCallbacks const * allocator, 8694 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher ) 8695 : m_swapchainKHR( swapchainKHR ), m_device( device ), m_allocator( allocator ), m_dispatcher( dispatcher ) 8696 {} SwapchainKHR(std::nullptr_t)8697 SwapchainKHR( std::nullptr_t ) {} 8698 ~SwapchainKHR()8699 ~SwapchainKHR() 8700 { 8701 if ( m_swapchainKHR ) 8702 { 8703 getDispatcher()->vkDestroySwapchainKHR( 8704 m_device, static_cast<VkSwapchainKHR>( m_swapchainKHR ), m_allocator ); 8705 } 8706 } 8707 8708 SwapchainKHR() = delete; 8709 SwapchainKHR( SwapchainKHR const & ) = delete; SwapchainKHR(SwapchainKHR && rhs)8710 SwapchainKHR( SwapchainKHR && rhs ) VULKAN_HPP_NOEXCEPT 8711 : m_swapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchainKHR, {} ) ) 8712 , m_device( rhs.m_device ) 8713 , m_allocator( rhs.m_allocator ) 8714 , m_dispatcher( rhs.m_dispatcher ) 8715 {} 8716 SwapchainKHR & operator=( SwapchainKHR const & ) = delete; operator =(SwapchainKHR && rhs)8717 SwapchainKHR & operator =( SwapchainKHR && rhs ) VULKAN_HPP_NOEXCEPT 8718 { 8719 if ( this != &rhs ) 8720 { 8721 if ( m_swapchainKHR ) 8722 { 8723 getDispatcher()->vkDestroySwapchainKHR( 8724 m_device, static_cast<VkSwapchainKHR>( m_swapchainKHR ), m_allocator ); 8725 } 8726 m_swapchainKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchainKHR, {} ); 8727 m_device = rhs.m_device; 8728 m_allocator = rhs.m_allocator; 8729 m_dispatcher = rhs.m_dispatcher; 8730 } 8731 return *this; 8732 } 8733 operator *() const8734 VULKAN_HPP_NAMESPACE::SwapchainKHR const & operator*() const VULKAN_HPP_NOEXCEPT 8735 { 8736 return m_swapchainKHR; 8737 } 8738 getDispatcher() const8739 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8740 { 8741 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8742 return m_dispatcher; 8743 } 8744 8745 //=== VK_KHR_swapchain === 8746 8747 VULKAN_HPP_NODISCARD std::vector<VkImage> getImages() const; 8748 8749 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t> 8750 acquireNextImage( uint64_t timeout, 8751 VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 8752 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 8753 8754 //=== VK_EXT_display_control === 8755 8756 VULKAN_HPP_NODISCARD uint64_t getCounterEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter ) const; 8757 8758 //=== VK_GOOGLE_display_timing === 8759 8760 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE getRefreshCycleDurationGOOGLE() const; 8761 8762 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> 8763 getPastPresentationTimingGOOGLE() const; 8764 8765 //=== VK_KHR_shared_presentable_image === 8766 8767 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; 8768 8769 //=== VK_AMD_display_native_hdr === 8770 8771 void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT; 8772 8773 //=== VK_KHR_present_wait === 8774 8775 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitForPresent( uint64_t presentId, uint64_t timeout ) const; 8776 8777 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 8778 //=== VK_EXT_full_screen_exclusive === 8779 8780 void acquireFullScreenExclusiveModeEXT() const; 8781 8782 void releaseFullScreenExclusiveModeEXT() const; 8783 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 8784 8785 private: 8786 VULKAN_HPP_NAMESPACE::SwapchainKHR m_swapchainKHR; 8787 VkDevice m_device; 8788 const VkAllocationCallbacks * m_allocator = nullptr; 8789 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8790 }; 8791 8792 class SwapchainKHRs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR> 8793 { 8794 public: SwapchainKHRs(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8795 SwapchainKHRs( 8796 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8797 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, 8798 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8799 { 8800 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * dispatcher = device.getDispatcher(); 8801 std::vector<VkSwapchainKHR> swapchains( createInfos.size() ); 8802 VULKAN_HPP_NAMESPACE::Result result = 8803 static_cast<VULKAN_HPP_NAMESPACE::Result>( dispatcher->vkCreateSharedSwapchainsKHR( 8804 static_cast<VkDevice>( *device ), 8805 createInfos.size(), 8806 reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), 8807 reinterpret_cast<const VkAllocationCallbacks *>( 8808 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 8809 swapchains.data() ) ); 8810 if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8811 { 8812 this->reserve( createInfos.size() ); 8813 for ( auto const & swapchainKHR : swapchains ) 8814 { 8815 this->emplace_back( swapchainKHR, 8816 static_cast<VkDevice>( *device ), 8817 reinterpret_cast<const VkAllocationCallbacks *>( 8818 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 8819 dispatcher ); 8820 } 8821 } 8822 else 8823 { 8824 throwResultException( result, "vkCreateSharedSwapchainsKHR" ); 8825 } 8826 } 8827 8828 SwapchainKHRs() = delete; 8829 SwapchainKHRs( SwapchainKHRs const & ) = delete; 8830 SwapchainKHRs( SwapchainKHRs && rhs ) = default; 8831 SwapchainKHRs & operator=( SwapchainKHRs const & ) = delete; 8832 SwapchainKHRs & operator=( SwapchainKHRs && rhs ) = default; 8833 }; 8834 8835 class ValidationCacheEXT 8836 { 8837 public: 8838 using CType = VkValidationCacheEXT; 8839 8840 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 8841 VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT; 8842 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8843 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT; 8844 8845 public: ValidationCacheEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8846 ValidationCacheEXT( 8847 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8848 VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & createInfo, 8849 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8850 : m_device( *device ) 8851 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8852 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8853 , m_dispatcher( device.getDispatcher() ) 8854 { 8855 VULKAN_HPP_NAMESPACE::Result result = 8856 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateValidationCacheEXT( 8857 static_cast<VkDevice>( *device ), 8858 reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ), 8859 m_allocator, 8860 reinterpret_cast<VkValidationCacheEXT *>( &m_validationCacheEXT ) ) ); 8861 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8862 { 8863 throwResultException( result, "vkCreateValidationCacheEXT" ); 8864 } 8865 } 8866 ValidationCacheEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkValidationCacheEXT validationCacheEXT,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8867 ValidationCacheEXT( 8868 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8869 VkValidationCacheEXT validationCacheEXT, 8870 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8871 : m_validationCacheEXT( validationCacheEXT ) 8872 , m_device( *device ) 8873 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8874 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8875 , m_dispatcher( device.getDispatcher() ) 8876 {} 8877 ValidationCacheEXT(std::nullptr_t)8878 ValidationCacheEXT( std::nullptr_t ) {} 8879 ~ValidationCacheEXT()8880 ~ValidationCacheEXT() 8881 { 8882 if ( m_validationCacheEXT ) 8883 { 8884 getDispatcher()->vkDestroyValidationCacheEXT( 8885 m_device, static_cast<VkValidationCacheEXT>( m_validationCacheEXT ), m_allocator ); 8886 } 8887 } 8888 8889 ValidationCacheEXT() = delete; 8890 ValidationCacheEXT( ValidationCacheEXT const & ) = delete; ValidationCacheEXT(ValidationCacheEXT && rhs)8891 ValidationCacheEXT( ValidationCacheEXT && rhs ) VULKAN_HPP_NOEXCEPT 8892 : m_validationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCacheEXT, 8893 {} ) ) 8894 , m_device( rhs.m_device ) 8895 , m_allocator( rhs.m_allocator ) 8896 , m_dispatcher( rhs.m_dispatcher ) 8897 {} 8898 ValidationCacheEXT & operator=( ValidationCacheEXT const & ) = delete; operator =(ValidationCacheEXT && rhs)8899 ValidationCacheEXT & operator =( ValidationCacheEXT && rhs ) VULKAN_HPP_NOEXCEPT 8900 { 8901 if ( this != &rhs ) 8902 { 8903 if ( m_validationCacheEXT ) 8904 { 8905 getDispatcher()->vkDestroyValidationCacheEXT( 8906 m_device, static_cast<VkValidationCacheEXT>( m_validationCacheEXT ), m_allocator ); 8907 } 8908 m_validationCacheEXT = 8909 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCacheEXT, {} ); 8910 m_device = rhs.m_device; 8911 m_allocator = rhs.m_allocator; 8912 m_dispatcher = rhs.m_dispatcher; 8913 } 8914 return *this; 8915 } 8916 operator *() const8917 VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & operator*() const VULKAN_HPP_NOEXCEPT 8918 { 8919 return m_validationCacheEXT; 8920 } 8921 getDispatcher() const8922 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8923 { 8924 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8925 return m_dispatcher; 8926 } 8927 8928 //=== VK_EXT_validation_cache === 8929 8930 void merge( ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches ) const; 8931 8932 VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const; 8933 8934 private: 8935 VULKAN_HPP_NAMESPACE::ValidationCacheEXT m_validationCacheEXT; 8936 VkDevice m_device; 8937 const VkAllocationCallbacks * m_allocator = nullptr; 8938 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8939 }; 8940 8941 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 8942 class VideoSessionKHR 8943 { 8944 public: 8945 using CType = VkVideoSessionKHR; 8946 8947 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 8948 VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionKHR; 8949 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8950 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 8951 8952 public: VideoSessionKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8953 VideoSessionKHR( 8954 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8955 VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const & createInfo, 8956 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8957 : m_device( *device ) 8958 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8959 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8960 , m_dispatcher( device.getDispatcher() ) 8961 { 8962 VULKAN_HPP_NAMESPACE::Result result = 8963 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateVideoSessionKHR( 8964 static_cast<VkDevice>( *device ), 8965 reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( &createInfo ), 8966 m_allocator, 8967 reinterpret_cast<VkVideoSessionKHR *>( &m_videoSessionKHR ) ) ); 8968 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 8969 { 8970 throwResultException( result, "vkCreateVideoSessionKHR" ); 8971 } 8972 } 8973 VideoSessionKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkVideoSessionKHR videoSessionKHR,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8974 VideoSessionKHR( 8975 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8976 VkVideoSessionKHR videoSessionKHR, 8977 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8978 : m_videoSessionKHR( videoSessionKHR ) 8979 , m_device( *device ) 8980 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 8981 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 8982 , m_dispatcher( device.getDispatcher() ) 8983 {} 8984 VideoSessionKHR(std::nullptr_t)8985 VideoSessionKHR( std::nullptr_t ) {} 8986 ~VideoSessionKHR()8987 ~VideoSessionKHR() 8988 { 8989 if ( m_videoSessionKHR ) 8990 { 8991 getDispatcher()->vkDestroyVideoSessionKHR( 8992 m_device, static_cast<VkVideoSessionKHR>( m_videoSessionKHR ), m_allocator ); 8993 } 8994 } 8995 8996 VideoSessionKHR() = delete; 8997 VideoSessionKHR( VideoSessionKHR const & ) = delete; VideoSessionKHR(VideoSessionKHR && rhs)8998 VideoSessionKHR( VideoSessionKHR && rhs ) VULKAN_HPP_NOEXCEPT 8999 : m_videoSessionKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionKHR, {} ) ) 9000 , m_device( rhs.m_device ) 9001 , m_allocator( rhs.m_allocator ) 9002 , m_dispatcher( rhs.m_dispatcher ) 9003 {} 9004 VideoSessionKHR & operator=( VideoSessionKHR const & ) = delete; operator =(VideoSessionKHR && rhs)9005 VideoSessionKHR & operator =( VideoSessionKHR && rhs ) VULKAN_HPP_NOEXCEPT 9006 { 9007 if ( this != &rhs ) 9008 { 9009 if ( m_videoSessionKHR ) 9010 { 9011 getDispatcher()->vkDestroyVideoSessionKHR( 9012 m_device, static_cast<VkVideoSessionKHR>( m_videoSessionKHR ), m_allocator ); 9013 } 9014 m_videoSessionKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionKHR, {} ); 9015 m_device = rhs.m_device; 9016 m_allocator = rhs.m_allocator; 9017 m_dispatcher = rhs.m_dispatcher; 9018 } 9019 return *this; 9020 } 9021 operator *() const9022 VULKAN_HPP_NAMESPACE::VideoSessionKHR const & operator*() const VULKAN_HPP_NOEXCEPT 9023 { 9024 return m_videoSessionKHR; 9025 } 9026 getDispatcher() const9027 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9028 { 9029 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9030 return m_dispatcher; 9031 } 9032 9033 //=== VK_KHR_video_queue === 9034 9035 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR> getMemoryRequirements() const; 9036 9037 void 9038 bindMemory( ArrayProxy<const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR> const & videoSessionBindMemories ) const; 9039 9040 private: 9041 VULKAN_HPP_NAMESPACE::VideoSessionKHR m_videoSessionKHR; 9042 VkDevice m_device; 9043 const VkAllocationCallbacks * m_allocator = nullptr; 9044 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9045 }; 9046 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 9047 9048 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 9049 class VideoSessionParametersKHR 9050 { 9051 public: 9052 using CType = VkVideoSessionParametersKHR; 9053 9054 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = 9055 VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionParametersKHR; 9056 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 9057 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 9058 9059 public: VideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9060 VideoSessionParametersKHR( 9061 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9062 VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const & createInfo, 9063 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9064 : m_device( *device ) 9065 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 9066 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 9067 , m_dispatcher( device.getDispatcher() ) 9068 { 9069 VULKAN_HPP_NAMESPACE::Result result = 9070 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateVideoSessionParametersKHR( 9071 static_cast<VkDevice>( *device ), 9072 reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( &createInfo ), 9073 m_allocator, 9074 reinterpret_cast<VkVideoSessionParametersKHR *>( &m_videoSessionParametersKHR ) ) ); 9075 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9076 { 9077 throwResultException( result, "vkCreateVideoSessionParametersKHR" ); 9078 } 9079 } 9080 VideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkVideoSessionParametersKHR videoSessionParametersKHR,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9081 VideoSessionParametersKHR( 9082 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9083 VkVideoSessionParametersKHR videoSessionParametersKHR, 9084 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9085 : m_videoSessionParametersKHR( videoSessionParametersKHR ) 9086 , m_device( *device ) 9087 , m_allocator( reinterpret_cast<const VkAllocationCallbacks *>( 9088 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ) 9089 , m_dispatcher( device.getDispatcher() ) 9090 {} 9091 VideoSessionParametersKHR(std::nullptr_t)9092 VideoSessionParametersKHR( std::nullptr_t ) {} 9093 ~VideoSessionParametersKHR()9094 ~VideoSessionParametersKHR() 9095 { 9096 if ( m_videoSessionParametersKHR ) 9097 { 9098 getDispatcher()->vkDestroyVideoSessionParametersKHR( 9099 m_device, static_cast<VkVideoSessionParametersKHR>( m_videoSessionParametersKHR ), m_allocator ); 9100 } 9101 } 9102 9103 VideoSessionParametersKHR() = delete; 9104 VideoSessionParametersKHR( VideoSessionParametersKHR const & ) = delete; VideoSessionParametersKHR(VideoSessionParametersKHR && rhs)9105 VideoSessionParametersKHR( VideoSessionParametersKHR && rhs ) VULKAN_HPP_NOEXCEPT 9106 : m_videoSessionParametersKHR( 9107 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionParametersKHR, {} ) ) 9108 , m_device( rhs.m_device ) 9109 , m_allocator( rhs.m_allocator ) 9110 , m_dispatcher( rhs.m_dispatcher ) 9111 {} 9112 VideoSessionParametersKHR & operator=( VideoSessionParametersKHR const & ) = delete; operator =(VideoSessionParametersKHR && rhs)9113 VideoSessionParametersKHR & operator=( VideoSessionParametersKHR && rhs ) VULKAN_HPP_NOEXCEPT 9114 { 9115 if ( this != &rhs ) 9116 { 9117 if ( m_videoSessionParametersKHR ) 9118 { 9119 getDispatcher()->vkDestroyVideoSessionParametersKHR( 9120 m_device, static_cast<VkVideoSessionParametersKHR>( m_videoSessionParametersKHR ), m_allocator ); 9121 } 9122 m_videoSessionParametersKHR = 9123 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionParametersKHR, {} ); 9124 m_device = rhs.m_device; 9125 m_allocator = rhs.m_allocator; 9126 m_dispatcher = rhs.m_dispatcher; 9127 } 9128 return *this; 9129 } 9130 operator *() const9131 VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & operator*() const VULKAN_HPP_NOEXCEPT 9132 { 9133 return m_videoSessionParametersKHR; 9134 } 9135 getDispatcher() const9136 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9137 { 9138 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9139 return m_dispatcher; 9140 } 9141 9142 //=== VK_KHR_video_queue === 9143 9144 void update( const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo ) const; 9145 9146 private: 9147 VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR m_videoSessionParametersKHR; 9148 VkDevice m_device; 9149 const VkAllocationCallbacks * m_allocator = nullptr; 9150 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9151 }; 9152 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 9153 9154 //=========================== 9155 //=== COMMAND Definitions === 9156 //=========================== 9157 9158 //=== VK_VERSION_1_0 === 9159 9160 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures() const9161 PhysicalDevice::getFeatures() const VULKAN_HPP_NOEXCEPT 9162 { 9163 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features; 9164 getDispatcher()->vkGetPhysicalDeviceFeatures( static_cast<VkPhysicalDevice>( m_physicalDevice ), 9165 reinterpret_cast<VkPhysicalDeviceFeatures *>( &features ) ); 9166 return features; 9167 } 9168 9169 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties(VULKAN_HPP_NAMESPACE::Format format) const9170 PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 9171 { 9172 VULKAN_HPP_NAMESPACE::FormatProperties formatProperties; 9173 getDispatcher()->vkGetPhysicalDeviceFormatProperties( 9174 static_cast<VkPhysicalDevice>( m_physicalDevice ), 9175 static_cast<VkFormat>( format ), 9176 reinterpret_cast<VkFormatProperties *>( &formatProperties ) ); 9177 return formatProperties; 9178 } 9179 9180 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties 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) const9181 PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, 9182 VULKAN_HPP_NAMESPACE::ImageType type, 9183 VULKAN_HPP_NAMESPACE::ImageTiling tiling, 9184 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 9185 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags ) const 9186 { 9187 VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties; 9188 VULKAN_HPP_NAMESPACE::Result result = 9189 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties( 9190 static_cast<VkPhysicalDevice>( m_physicalDevice ), 9191 static_cast<VkFormat>( format ), 9192 static_cast<VkImageType>( type ), 9193 static_cast<VkImageTiling>( tiling ), 9194 static_cast<VkImageUsageFlags>( usage ), 9195 static_cast<VkImageCreateFlags>( flags ), 9196 reinterpret_cast<VkImageFormatProperties *>( &imageFormatProperties ) ) ); 9197 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9198 { 9199 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" ); 9200 } 9201 return imageFormatProperties; 9202 } 9203 9204 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties() const9205 PhysicalDevice::getProperties() const VULKAN_HPP_NOEXCEPT 9206 { 9207 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties; 9208 getDispatcher()->vkGetPhysicalDeviceProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 9209 reinterpret_cast<VkPhysicalDeviceProperties *>( &properties ) ); 9210 return properties; 9211 } 9212 9213 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> getQueueFamilyProperties() const9214 PhysicalDevice::getQueueFamilyProperties() const VULKAN_HPP_NOEXCEPT 9215 { 9216 uint32_t queueFamilyPropertyCount; 9217 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties( 9218 static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 9219 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> queueFamilyProperties( queueFamilyPropertyCount ); 9220 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties( 9221 static_cast<VkPhysicalDevice>( m_physicalDevice ), 9222 &queueFamilyPropertyCount, 9223 reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) ); 9224 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 9225 return queueFamilyProperties; 9226 } 9227 9228 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties() const9229 PhysicalDevice::getMemoryProperties() const VULKAN_HPP_NOEXCEPT 9230 { 9231 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties; 9232 getDispatcher()->vkGetPhysicalDeviceMemoryProperties( 9233 static_cast<VkPhysicalDevice>( m_physicalDevice ), 9234 reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( &memoryProperties ) ); 9235 return memoryProperties; 9236 } 9237 9238 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction getProcAddr(const std::string & name) const9239 Instance::getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT 9240 { 9241 return getDispatcher()->vkGetInstanceProcAddr( static_cast<VkInstance>( m_instance ), name.c_str() ); 9242 } 9243 9244 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction getProcAddr(const std::string & name) const9245 Device::getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT 9246 { 9247 return getDispatcher()->vkGetDeviceProcAddr( static_cast<VkDevice>( m_device ), name.c_str() ); 9248 } 9249 9250 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> enumerateInstanceExtensionProperties(Optional<const std::string> layerName) const9251 Context::enumerateInstanceExtensionProperties( Optional<const std::string> layerName ) const 9252 { 9253 std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> properties; 9254 uint32_t propertyCount; 9255 VULKAN_HPP_NAMESPACE::Result result; 9256 do 9257 { 9258 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceExtensionProperties( 9259 layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); 9260 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 9261 { 9262 properties.resize( propertyCount ); 9263 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceExtensionProperties( 9264 layerName ? layerName->c_str() : nullptr, 9265 &propertyCount, 9266 reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) ); 9267 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 9268 } 9269 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 9270 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 9271 { 9272 properties.resize( propertyCount ); 9273 } 9274 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9275 { 9276 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceExtensionProperties" ); 9277 } 9278 return properties; 9279 } 9280 9281 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> enumerateDeviceExtensionProperties(Optional<const std::string> layerName) const9282 PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName ) const 9283 { 9284 std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> properties; 9285 uint32_t propertyCount; 9286 VULKAN_HPP_NAMESPACE::Result result; 9287 do 9288 { 9289 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9290 getDispatcher()->vkEnumerateDeviceExtensionProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 9291 layerName ? layerName->c_str() : nullptr, 9292 &propertyCount, 9293 nullptr ) ); 9294 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 9295 { 9296 properties.resize( propertyCount ); 9297 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateDeviceExtensionProperties( 9298 static_cast<VkPhysicalDevice>( m_physicalDevice ), 9299 layerName ? layerName->c_str() : nullptr, 9300 &propertyCount, 9301 reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) ); 9302 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 9303 } 9304 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 9305 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 9306 { 9307 properties.resize( propertyCount ); 9308 } 9309 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9310 { 9311 throwResultException( result, 9312 VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" ); 9313 } 9314 return properties; 9315 } 9316 9317 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> enumerateInstanceLayerProperties() const9318 Context::enumerateInstanceLayerProperties() const 9319 { 9320 std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> properties; 9321 uint32_t propertyCount; 9322 VULKAN_HPP_NAMESPACE::Result result; 9323 do 9324 { 9325 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9326 getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); 9327 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 9328 { 9329 properties.resize( propertyCount ); 9330 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceLayerProperties( 9331 &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) ); 9332 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 9333 } 9334 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 9335 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 9336 { 9337 properties.resize( propertyCount ); 9338 } 9339 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9340 { 9341 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceLayerProperties" ); 9342 } 9343 return properties; 9344 } 9345 9346 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> enumerateDeviceLayerProperties() const9347 PhysicalDevice::enumerateDeviceLayerProperties() const 9348 { 9349 std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> properties; 9350 uint32_t propertyCount; 9351 VULKAN_HPP_NAMESPACE::Result result; 9352 do 9353 { 9354 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateDeviceLayerProperties( 9355 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 9356 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 9357 { 9358 properties.resize( propertyCount ); 9359 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateDeviceLayerProperties( 9360 static_cast<VkPhysicalDevice>( m_physicalDevice ), 9361 &propertyCount, 9362 reinterpret_cast<VkLayerProperties *>( properties.data() ) ) ); 9363 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 9364 } 9365 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 9366 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 9367 { 9368 properties.resize( propertyCount ); 9369 } 9370 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9371 { 9372 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" ); 9373 } 9374 return properties; 9375 } 9376 submit(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,VULKAN_HPP_NAMESPACE::Fence fence) const9377 VULKAN_HPP_INLINE void Queue::submit( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits, 9378 VULKAN_HPP_NAMESPACE::Fence fence ) const 9379 { 9380 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9381 getDispatcher()->vkQueueSubmit( static_cast<VkQueue>( m_queue ), 9382 submits.size(), 9383 reinterpret_cast<const VkSubmitInfo *>( submits.data() ), 9384 static_cast<VkFence>( fence ) ) ); 9385 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9386 { 9387 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" ); 9388 } 9389 } 9390 waitIdle() const9391 VULKAN_HPP_INLINE void Queue::waitIdle() const 9392 { 9393 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9394 getDispatcher()->vkQueueWaitIdle( static_cast<VkQueue>( m_queue ) ) ); 9395 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9396 { 9397 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" ); 9398 } 9399 } 9400 waitIdle() const9401 VULKAN_HPP_INLINE void Device::waitIdle() const 9402 { 9403 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9404 getDispatcher()->vkDeviceWaitIdle( static_cast<VkDevice>( m_device ) ) ); 9405 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9406 { 9407 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" ); 9408 } 9409 } 9410 9411 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * mapMemory(VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::MemoryMapFlags flags) const9412 DeviceMemory::mapMemory( VULKAN_HPP_NAMESPACE::DeviceSize offset, 9413 VULKAN_HPP_NAMESPACE::DeviceSize size, 9414 VULKAN_HPP_NAMESPACE::MemoryMapFlags flags ) const 9415 { 9416 void * pData; 9417 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9418 getDispatcher()->vkMapMemory( static_cast<VkDevice>( m_device ), 9419 static_cast<VkDeviceMemory>( m_deviceMemory ), 9420 static_cast<VkDeviceSize>( offset ), 9421 static_cast<VkDeviceSize>( size ), 9422 static_cast<VkMemoryMapFlags>( flags ), 9423 &pData ) ); 9424 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9425 { 9426 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::mapMemory" ); 9427 } 9428 return pData; 9429 } 9430 unmapMemory() const9431 VULKAN_HPP_INLINE void DeviceMemory::unmapMemory() const VULKAN_HPP_NOEXCEPT 9432 { 9433 getDispatcher()->vkUnmapMemory( static_cast<VkDevice>( m_device ), 9434 static_cast<VkDeviceMemory>( m_deviceMemory ) ); 9435 } 9436 flushMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges) const9437 VULKAN_HPP_INLINE void Device::flushMappedMemoryRanges( 9438 ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const 9439 { 9440 VULKAN_HPP_NAMESPACE::Result result = 9441 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkFlushMappedMemoryRanges( 9442 static_cast<VkDevice>( m_device ), 9443 memoryRanges.size(), 9444 reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) ); 9445 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9446 { 9447 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" ); 9448 } 9449 } 9450 invalidateMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges) const9451 VULKAN_HPP_INLINE void Device::invalidateMappedMemoryRanges( 9452 ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const 9453 { 9454 VULKAN_HPP_NAMESPACE::Result result = 9455 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkInvalidateMappedMemoryRanges( 9456 static_cast<VkDevice>( m_device ), 9457 memoryRanges.size(), 9458 reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) ); 9459 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9460 { 9461 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" ); 9462 } 9463 } 9464 9465 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize getCommitment() const9466 DeviceMemory::getCommitment() const VULKAN_HPP_NOEXCEPT 9467 { 9468 VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes; 9469 getDispatcher()->vkGetDeviceMemoryCommitment( static_cast<VkDevice>( m_device ), 9470 static_cast<VkDeviceMemory>( m_deviceMemory ), 9471 reinterpret_cast<VkDeviceSize *>( &committedMemoryInBytes ) ); 9472 return committedMemoryInBytes; 9473 } 9474 bindMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset) const9475 VULKAN_HPP_INLINE void Buffer::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, 9476 VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const 9477 { 9478 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9479 getDispatcher()->vkBindBufferMemory( static_cast<VkDevice>( m_device ), 9480 static_cast<VkBuffer>( m_buffer ), 9481 static_cast<VkDeviceMemory>( memory ), 9482 static_cast<VkDeviceSize>( memoryOffset ) ) ); 9483 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9484 { 9485 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Buffer::bindMemory" ); 9486 } 9487 } 9488 bindMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset) const9489 VULKAN_HPP_INLINE void Image::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, 9490 VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const 9491 { 9492 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9493 getDispatcher()->vkBindImageMemory( static_cast<VkDevice>( m_device ), 9494 static_cast<VkImage>( m_image ), 9495 static_cast<VkDeviceMemory>( memory ), 9496 static_cast<VkDeviceSize>( memoryOffset ) ) ); 9497 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9498 { 9499 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Image::bindMemory" ); 9500 } 9501 } 9502 9503 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const9504 Buffer::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT 9505 { 9506 VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; 9507 getDispatcher()->vkGetBufferMemoryRequirements( static_cast<VkDevice>( m_device ), 9508 static_cast<VkBuffer>( m_buffer ), 9509 reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) ); 9510 return memoryRequirements; 9511 } 9512 9513 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const9514 Image::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT 9515 { 9516 VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; 9517 getDispatcher()->vkGetImageMemoryRequirements( static_cast<VkDevice>( m_device ), 9518 static_cast<VkImage>( m_image ), 9519 reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) ); 9520 return memoryRequirements; 9521 } 9522 9523 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> getSparseMemoryRequirements() const9524 Image::getSparseMemoryRequirements() const VULKAN_HPP_NOEXCEPT 9525 { 9526 uint32_t sparseMemoryRequirementCount; 9527 getDispatcher()->vkGetImageSparseMemoryRequirements( 9528 static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), &sparseMemoryRequirementCount, nullptr ); 9529 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> sparseMemoryRequirements( 9530 sparseMemoryRequirementCount ); 9531 getDispatcher()->vkGetImageSparseMemoryRequirements( 9532 static_cast<VkDevice>( m_device ), 9533 static_cast<VkImage>( m_image ), 9534 &sparseMemoryRequirementCount, 9535 reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) ); 9536 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 9537 return sparseMemoryRequirements; 9538 } 9539 9540 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties> 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) const9541 PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, 9542 VULKAN_HPP_NAMESPACE::ImageType type, 9543 VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, 9544 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 9545 VULKAN_HPP_NAMESPACE::ImageTiling tiling ) const 9546 VULKAN_HPP_NOEXCEPT 9547 { 9548 uint32_t propertyCount; 9549 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties( 9550 static_cast<VkPhysicalDevice>( m_physicalDevice ), 9551 static_cast<VkFormat>( format ), 9552 static_cast<VkImageType>( type ), 9553 static_cast<VkSampleCountFlagBits>( samples ), 9554 static_cast<VkImageUsageFlags>( usage ), 9555 static_cast<VkImageTiling>( tiling ), 9556 &propertyCount, 9557 nullptr ); 9558 std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties> properties( propertyCount ); 9559 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties( 9560 static_cast<VkPhysicalDevice>( m_physicalDevice ), 9561 static_cast<VkFormat>( format ), 9562 static_cast<VkImageType>( type ), 9563 static_cast<VkSampleCountFlagBits>( samples ), 9564 static_cast<VkImageUsageFlags>( usage ), 9565 static_cast<VkImageTiling>( tiling ), 9566 &propertyCount, 9567 reinterpret_cast<VkSparseImageFormatProperties *>( properties.data() ) ); 9568 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 9569 return properties; 9570 } 9571 bindSparse(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo,VULKAN_HPP_NAMESPACE::Fence fence) const9572 VULKAN_HPP_INLINE void Queue::bindSparse( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo, 9573 VULKAN_HPP_NAMESPACE::Fence fence ) const 9574 { 9575 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9576 getDispatcher()->vkQueueBindSparse( static_cast<VkQueue>( m_queue ), 9577 bindInfo.size(), 9578 reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), 9579 static_cast<VkFence>( fence ) ) ); 9580 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9581 { 9582 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" ); 9583 } 9584 } 9585 resetFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences) const9586 VULKAN_HPP_INLINE void Device::resetFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences ) const 9587 { 9588 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkResetFences( 9589 static_cast<VkDevice>( m_device ), fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) ); 9590 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9591 { 9592 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" ); 9593 } 9594 } 9595 getStatus() const9596 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Fence::getStatus() const 9597 { 9598 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9599 getDispatcher()->vkGetFenceStatus( static_cast<VkDevice>( m_device ), static_cast<VkFence>( m_fence ) ) ); 9600 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 9601 ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) ) 9602 { 9603 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Fence::getStatus" ); 9604 } 9605 return result; 9606 } 9607 9608 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result waitForFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout) const9609 Device::waitForFences( ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, 9610 VULKAN_HPP_NAMESPACE::Bool32 waitAll, 9611 uint64_t timeout ) const 9612 { 9613 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9614 getDispatcher()->vkWaitForFences( static_cast<VkDevice>( m_device ), 9615 fences.size(), 9616 reinterpret_cast<const VkFence *>( fences.data() ), 9617 static_cast<VkBool32>( waitAll ), 9618 timeout ) ); 9619 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 9620 ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) ) 9621 { 9622 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences" ); 9623 } 9624 return result; 9625 } 9626 getStatus() const9627 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Event::getStatus() const 9628 { 9629 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9630 getDispatcher()->vkGetEventStatus( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) ); 9631 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eEventSet ) && 9632 ( result != VULKAN_HPP_NAMESPACE::Result::eEventReset ) ) 9633 { 9634 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Event::getStatus" ); 9635 } 9636 return result; 9637 } 9638 set() const9639 VULKAN_HPP_INLINE void Event::set() const 9640 { 9641 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9642 getDispatcher()->vkSetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) ); 9643 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9644 { 9645 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Event::set" ); 9646 } 9647 } 9648 reset() const9649 VULKAN_HPP_INLINE void Event::reset() const 9650 { 9651 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9652 getDispatcher()->vkResetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) ); 9653 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9654 { 9655 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Event::reset" ); 9656 } 9657 } 9658 9659 template <typename T> 9660 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, std::vector<T>> getResults(uint32_t firstQuery,uint32_t queryCount,size_t dataSize,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags) const9661 QueryPool::getResults( uint32_t firstQuery, 9662 uint32_t queryCount, 9663 size_t dataSize, 9664 VULKAN_HPP_NAMESPACE::DeviceSize stride, 9665 VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const 9666 { 9667 VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); 9668 std::vector<T> data( dataSize / sizeof( T ) ); 9669 Result result = 9670 static_cast<Result>( getDispatcher()->vkGetQueryPoolResults( static_cast<VkDevice>( m_device ), 9671 static_cast<VkQueryPool>( m_queryPool ), 9672 firstQuery, 9673 queryCount, 9674 data.size() * sizeof( T ), 9675 reinterpret_cast<void *>( data.data() ), 9676 static_cast<VkDeviceSize>( stride ), 9677 static_cast<VkQueryResultFlags>( flags ) ) ); 9678 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 9679 ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) ) 9680 { 9681 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResults" ); 9682 } 9683 return std::make_pair( result, data ); 9684 } 9685 9686 template <typename T> 9687 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, T> getResult(uint32_t firstQuery,uint32_t queryCount,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags) const9688 QueryPool::getResult( uint32_t firstQuery, 9689 uint32_t queryCount, 9690 VULKAN_HPP_NAMESPACE::DeviceSize stride, 9691 VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const 9692 { 9693 T data; 9694 Result result = 9695 static_cast<Result>( getDispatcher()->vkGetQueryPoolResults( static_cast<VkDevice>( m_device ), 9696 static_cast<VkQueryPool>( m_queryPool ), 9697 firstQuery, 9698 queryCount, 9699 sizeof( T ), 9700 reinterpret_cast<void *>( &data ), 9701 static_cast<VkDeviceSize>( stride ), 9702 static_cast<VkQueryResultFlags>( flags ) ) ); 9703 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 9704 ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) ) 9705 { 9706 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResult" ); 9707 } 9708 return std::make_pair( result, data ); 9709 } 9710 getSubresourceLayout(const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource) const9711 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Image::getSubresourceLayout( 9712 const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource ) const VULKAN_HPP_NOEXCEPT 9713 { 9714 VULKAN_HPP_NAMESPACE::SubresourceLayout layout; 9715 getDispatcher()->vkGetImageSubresourceLayout( static_cast<VkDevice>( m_device ), 9716 static_cast<VkImage>( m_image ), 9717 reinterpret_cast<const VkImageSubresource *>( &subresource ), 9718 reinterpret_cast<VkSubresourceLayout *>( &layout ) ); 9719 return layout; 9720 } 9721 getData() const9722 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> PipelineCache::getData() const 9723 { 9724 std::vector<uint8_t> data; 9725 size_t dataSize; 9726 VULKAN_HPP_NAMESPACE::Result result; 9727 do 9728 { 9729 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineCacheData( 9730 static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( m_pipelineCache ), &dataSize, nullptr ) ); 9731 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) 9732 { 9733 data.resize( dataSize ); 9734 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9735 getDispatcher()->vkGetPipelineCacheData( static_cast<VkDevice>( m_device ), 9736 static_cast<VkPipelineCache>( m_pipelineCache ), 9737 &dataSize, 9738 reinterpret_cast<void *>( data.data() ) ) ); 9739 VULKAN_HPP_ASSERT( dataSize <= data.size() ); 9740 } 9741 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 9742 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( dataSize < data.size() ) ) 9743 { 9744 data.resize( dataSize ); 9745 } 9746 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9747 { 9748 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::getData" ); 9749 } 9750 return data; 9751 } 9752 9753 VULKAN_HPP_INLINE void merge(ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches) const9754 PipelineCache::merge( ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches ) const 9755 { 9756 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9757 getDispatcher()->vkMergePipelineCaches( static_cast<VkDevice>( m_device ), 9758 static_cast<VkPipelineCache>( m_pipelineCache ), 9759 srcCaches.size(), 9760 reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) ); 9761 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9762 { 9763 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::merge" ); 9764 } 9765 } 9766 9767 VULKAN_HPP_INLINE void reset(VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags) const9768 DescriptorPool::reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT 9769 { 9770 getDispatcher()->vkResetDescriptorPool( static_cast<VkDevice>( m_device ), 9771 static_cast<VkDescriptorPool>( m_descriptorPool ), 9772 static_cast<VkDescriptorPoolResetFlags>( flags ) ); 9773 } 9774 updateDescriptorSets(ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies) const9775 VULKAN_HPP_INLINE void Device::updateDescriptorSets( 9776 ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites, 9777 ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies ) const VULKAN_HPP_NOEXCEPT 9778 { 9779 getDispatcher()->vkUpdateDescriptorSets( 9780 static_cast<VkDevice>( m_device ), 9781 descriptorWrites.size(), 9782 reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ), 9783 descriptorCopies.size(), 9784 reinterpret_cast<const VkCopyDescriptorSet *>( descriptorCopies.data() ) ); 9785 } 9786 9787 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity() const9788 RenderPass::getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT 9789 { 9790 VULKAN_HPP_NAMESPACE::Extent2D granularity; 9791 getDispatcher()->vkGetRenderAreaGranularity( static_cast<VkDevice>( m_device ), 9792 static_cast<VkRenderPass>( m_renderPass ), 9793 reinterpret_cast<VkExtent2D *>( &granularity ) ); 9794 return granularity; 9795 } 9796 reset(VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags) const9797 VULKAN_HPP_INLINE void CommandPool::reset( VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags ) const 9798 { 9799 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9800 getDispatcher()->vkResetCommandPool( static_cast<VkDevice>( m_device ), 9801 static_cast<VkCommandPool>( m_commandPool ), 9802 static_cast<VkCommandPoolResetFlags>( flags ) ) ); 9803 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9804 { 9805 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandPool::reset" ); 9806 } 9807 } 9808 begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo) const9809 VULKAN_HPP_INLINE void CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo ) const 9810 { 9811 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9812 getDispatcher()->vkBeginCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 9813 reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) ); 9814 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9815 { 9816 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" ); 9817 } 9818 } 9819 end() const9820 VULKAN_HPP_INLINE void CommandBuffer::end() const 9821 { 9822 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 9823 getDispatcher()->vkEndCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ) ) ); 9824 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9825 { 9826 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" ); 9827 } 9828 } 9829 reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags) const9830 VULKAN_HPP_INLINE void CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags ) const 9831 { 9832 VULKAN_HPP_NAMESPACE::Result result = 9833 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkResetCommandBuffer( 9834 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCommandBufferResetFlags>( flags ) ) ); 9835 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9836 { 9837 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" ); 9838 } 9839 } 9840 9841 VULKAN_HPP_INLINE void bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline) const9842 CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 9843 VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT 9844 { 9845 getDispatcher()->vkCmdBindPipeline( static_cast<VkCommandBuffer>( m_commandBuffer ), 9846 static_cast<VkPipelineBindPoint>( pipelineBindPoint ), 9847 static_cast<VkPipeline>( pipeline ) ); 9848 } 9849 setViewport(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports) const9850 VULKAN_HPP_INLINE void CommandBuffer::setViewport( 9851 uint32_t firstViewport, 9852 ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT 9853 { 9854 getDispatcher()->vkCmdSetViewport( static_cast<VkCommandBuffer>( m_commandBuffer ), 9855 firstViewport, 9856 viewports.size(), 9857 reinterpret_cast<const VkViewport *>( viewports.data() ) ); 9858 } 9859 setScissor(uint32_t firstScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors) const9860 VULKAN_HPP_INLINE void CommandBuffer::setScissor( 9861 uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT 9862 { 9863 getDispatcher()->vkCmdSetScissor( static_cast<VkCommandBuffer>( m_commandBuffer ), 9864 firstScissor, 9865 scissors.size(), 9866 reinterpret_cast<const VkRect2D *>( scissors.data() ) ); 9867 } 9868 setLineWidth(float lineWidth) const9869 VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth ) const VULKAN_HPP_NOEXCEPT 9870 { 9871 getDispatcher()->vkCmdSetLineWidth( static_cast<VkCommandBuffer>( m_commandBuffer ), lineWidth ); 9872 } 9873 setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const9874 VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, 9875 float depthBiasClamp, 9876 float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT 9877 { 9878 getDispatcher()->vkCmdSetDepthBias( static_cast<VkCommandBuffer>( m_commandBuffer ), 9879 depthBiasConstantFactor, 9880 depthBiasClamp, 9881 depthBiasSlopeFactor ); 9882 } 9883 setBlendConstants(const float blendConstants[4]) const9884 VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT 9885 { 9886 getDispatcher()->vkCmdSetBlendConstants( static_cast<VkCommandBuffer>( m_commandBuffer ), blendConstants ); 9887 } 9888 setDepthBounds(float minDepthBounds,float maxDepthBounds) const9889 VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, 9890 float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT 9891 { 9892 getDispatcher()->vkCmdSetDepthBounds( 9893 static_cast<VkCommandBuffer>( m_commandBuffer ), minDepthBounds, maxDepthBounds ); 9894 } 9895 setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask) const9896 VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 9897 uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT 9898 { 9899 getDispatcher()->vkCmdSetStencilCompareMask( 9900 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), compareMask ); 9901 } 9902 setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask) const9903 VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 9904 uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT 9905 { 9906 getDispatcher()->vkCmdSetStencilWriteMask( 9907 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), writeMask ); 9908 } 9909 setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference) const9910 VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 9911 uint32_t reference ) const VULKAN_HPP_NOEXCEPT 9912 { 9913 getDispatcher()->vkCmdSetStencilReference( 9914 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), reference ); 9915 } 9916 9917 VULKAN_HPP_INLINE void bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,ArrayProxy<const uint32_t> const & dynamicOffsets) const9918 CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 9919 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 9920 uint32_t firstSet, 9921 ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, 9922 ArrayProxy<const uint32_t> const & dynamicOffsets ) const VULKAN_HPP_NOEXCEPT 9923 { 9924 getDispatcher()->vkCmdBindDescriptorSets( static_cast<VkCommandBuffer>( m_commandBuffer ), 9925 static_cast<VkPipelineBindPoint>( pipelineBindPoint ), 9926 static_cast<VkPipelineLayout>( layout ), 9927 firstSet, 9928 descriptorSets.size(), 9929 reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ), 9930 dynamicOffsets.size(), 9931 dynamicOffsets.data() ); 9932 } 9933 9934 VULKAN_HPP_INLINE void bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType) const9935 CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, 9936 VULKAN_HPP_NAMESPACE::DeviceSize offset, 9937 VULKAN_HPP_NAMESPACE::IndexType indexType ) const VULKAN_HPP_NOEXCEPT 9938 { 9939 getDispatcher()->vkCmdBindIndexBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 9940 static_cast<VkBuffer>( buffer ), 9941 static_cast<VkDeviceSize>( offset ), 9942 static_cast<VkIndexType>( indexType ) ); 9943 } 9944 bindVertexBuffers(uint32_t firstBinding,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets) const9945 VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( 9946 uint32_t firstBinding, 9947 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 9948 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 9949 { 9950 # ifdef VULKAN_HPP_NO_EXCEPTIONS 9951 VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); 9952 # else 9953 if ( buffers.size() != offsets.size() ) 9954 { 9955 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 9956 "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" ); 9957 } 9958 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 9959 9960 getDispatcher()->vkCmdBindVertexBuffers( static_cast<VkCommandBuffer>( m_commandBuffer ), 9961 firstBinding, 9962 buffers.size(), 9963 reinterpret_cast<const VkBuffer *>( buffers.data() ), 9964 reinterpret_cast<const VkDeviceSize *>( offsets.data() ) ); 9965 } 9966 draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const9967 VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, 9968 uint32_t instanceCount, 9969 uint32_t firstVertex, 9970 uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT 9971 { 9972 getDispatcher()->vkCmdDraw( 9973 static_cast<VkCommandBuffer>( m_commandBuffer ), vertexCount, instanceCount, firstVertex, firstInstance ); 9974 } 9975 drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const9976 VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, 9977 uint32_t instanceCount, 9978 uint32_t firstIndex, 9979 int32_t vertexOffset, 9980 uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT 9981 { 9982 getDispatcher()->vkCmdDrawIndexed( static_cast<VkCommandBuffer>( m_commandBuffer ), 9983 indexCount, 9984 instanceCount, 9985 firstIndex, 9986 vertexOffset, 9987 firstInstance ); 9988 } 9989 drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride) const9990 VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 9991 VULKAN_HPP_NAMESPACE::DeviceSize offset, 9992 uint32_t drawCount, 9993 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 9994 { 9995 getDispatcher()->vkCmdDrawIndirect( static_cast<VkCommandBuffer>( m_commandBuffer ), 9996 static_cast<VkBuffer>( buffer ), 9997 static_cast<VkDeviceSize>( offset ), 9998 drawCount, 9999 stride ); 10000 } 10001 drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride) const10002 VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 10003 VULKAN_HPP_NAMESPACE::DeviceSize offset, 10004 uint32_t drawCount, 10005 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 10006 { 10007 getDispatcher()->vkCmdDrawIndexedIndirect( static_cast<VkCommandBuffer>( m_commandBuffer ), 10008 static_cast<VkBuffer>( buffer ), 10009 static_cast<VkDeviceSize>( offset ), 10010 drawCount, 10011 stride ); 10012 } 10013 dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const10014 VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, 10015 uint32_t groupCountY, 10016 uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT 10017 { 10018 getDispatcher()->vkCmdDispatch( 10019 static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ ); 10020 } 10021 10022 VULKAN_HPP_INLINE void dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset) const10023 CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 10024 VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT 10025 { 10026 getDispatcher()->vkCmdDispatchIndirect( static_cast<VkCommandBuffer>( m_commandBuffer ), 10027 static_cast<VkBuffer>( buffer ), 10028 static_cast<VkDeviceSize>( offset ) ); 10029 } 10030 copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions) const10031 VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( 10032 VULKAN_HPP_NAMESPACE::Buffer srcBuffer, 10033 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 10034 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions ) const VULKAN_HPP_NOEXCEPT 10035 { 10036 getDispatcher()->vkCmdCopyBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 10037 static_cast<VkBuffer>( srcBuffer ), 10038 static_cast<VkBuffer>( dstBuffer ), 10039 regions.size(), 10040 reinterpret_cast<const VkBufferCopy *>( regions.data() ) ); 10041 } 10042 copyImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions) const10043 VULKAN_HPP_INLINE void CommandBuffer::copyImage( 10044 VULKAN_HPP_NAMESPACE::Image srcImage, 10045 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 10046 VULKAN_HPP_NAMESPACE::Image dstImage, 10047 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 10048 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT 10049 { 10050 getDispatcher()->vkCmdCopyImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 10051 static_cast<VkImage>( srcImage ), 10052 static_cast<VkImageLayout>( srcImageLayout ), 10053 static_cast<VkImage>( dstImage ), 10054 static_cast<VkImageLayout>( dstImageLayout ), 10055 regions.size(), 10056 reinterpret_cast<const VkImageCopy *>( regions.data() ) ); 10057 } 10058 blitImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions,VULKAN_HPP_NAMESPACE::Filter filter) const10059 VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, 10060 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 10061 VULKAN_HPP_NAMESPACE::Image dstImage, 10062 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 10063 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions, 10064 VULKAN_HPP_NAMESPACE::Filter filter ) const VULKAN_HPP_NOEXCEPT 10065 { 10066 getDispatcher()->vkCmdBlitImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 10067 static_cast<VkImage>( srcImage ), 10068 static_cast<VkImageLayout>( srcImageLayout ), 10069 static_cast<VkImage>( dstImage ), 10070 static_cast<VkImageLayout>( dstImageLayout ), 10071 regions.size(), 10072 reinterpret_cast<const VkImageBlit *>( regions.data() ), 10073 static_cast<VkFilter>( filter ) ); 10074 } 10075 copyBufferToImage(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions) const10076 VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( 10077 VULKAN_HPP_NAMESPACE::Buffer srcBuffer, 10078 VULKAN_HPP_NAMESPACE::Image dstImage, 10079 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 10080 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT 10081 { 10082 getDispatcher()->vkCmdCopyBufferToImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 10083 static_cast<VkBuffer>( srcBuffer ), 10084 static_cast<VkImage>( dstImage ), 10085 static_cast<VkImageLayout>( dstImageLayout ), 10086 regions.size(), 10087 reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) ); 10088 } 10089 copyImageToBuffer(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions) const10090 VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( 10091 VULKAN_HPP_NAMESPACE::Image srcImage, 10092 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 10093 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 10094 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT 10095 { 10096 getDispatcher()->vkCmdCopyImageToBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 10097 static_cast<VkImage>( srcImage ), 10098 static_cast<VkImageLayout>( srcImageLayout ), 10099 static_cast<VkBuffer>( dstBuffer ), 10100 regions.size(), 10101 reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) ); 10102 } 10103 10104 template <typename T> updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,ArrayProxy<const T> const & data) const10105 VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 10106 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 10107 ArrayProxy<const T> const & data ) const VULKAN_HPP_NOEXCEPT 10108 { 10109 getDispatcher()->vkCmdUpdateBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 10110 static_cast<VkBuffer>( dstBuffer ), 10111 static_cast<VkDeviceSize>( dstOffset ), 10112 data.size() * sizeof( T ), 10113 reinterpret_cast<const void *>( data.data() ) ); 10114 } 10115 fillBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::DeviceSize size,uint32_t data) const10116 VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 10117 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 10118 VULKAN_HPP_NAMESPACE::DeviceSize size, 10119 uint32_t data ) const VULKAN_HPP_NOEXCEPT 10120 { 10121 getDispatcher()->vkCmdFillBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 10122 static_cast<VkBuffer>( dstBuffer ), 10123 static_cast<VkDeviceSize>( dstOffset ), 10124 static_cast<VkDeviceSize>( size ), 10125 data ); 10126 } 10127 clearColorImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearColorValue & color,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges) const10128 VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( 10129 VULKAN_HPP_NAMESPACE::Image image, 10130 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, 10131 const VULKAN_HPP_NAMESPACE::ClearColorValue & color, 10132 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const VULKAN_HPP_NOEXCEPT 10133 { 10134 getDispatcher()->vkCmdClearColorImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 10135 static_cast<VkImage>( image ), 10136 static_cast<VkImageLayout>( imageLayout ), 10137 reinterpret_cast<const VkClearColorValue *>( &color ), 10138 ranges.size(), 10139 reinterpret_cast<const VkImageSubresourceRange *>( ranges.data() ) ); 10140 } 10141 clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue & depthStencil,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges) const10142 VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( 10143 VULKAN_HPP_NAMESPACE::Image image, 10144 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, 10145 const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue & depthStencil, 10146 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const VULKAN_HPP_NOEXCEPT 10147 { 10148 getDispatcher()->vkCmdClearDepthStencilImage( 10149 static_cast<VkCommandBuffer>( m_commandBuffer ), 10150 static_cast<VkImage>( image ), 10151 static_cast<VkImageLayout>( imageLayout ), 10152 reinterpret_cast<const VkClearDepthStencilValue *>( &depthStencil ), 10153 ranges.size(), 10154 reinterpret_cast<const VkImageSubresourceRange *>( ranges.data() ) ); 10155 } 10156 clearAttachments(ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects) const10157 VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( 10158 ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments, 10159 ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects ) const VULKAN_HPP_NOEXCEPT 10160 { 10161 getDispatcher()->vkCmdClearAttachments( static_cast<VkCommandBuffer>( m_commandBuffer ), 10162 attachments.size(), 10163 reinterpret_cast<const VkClearAttachment *>( attachments.data() ), 10164 rects.size(), 10165 reinterpret_cast<const VkClearRect *>( rects.data() ) ); 10166 } 10167 resolveImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions) const10168 VULKAN_HPP_INLINE void CommandBuffer::resolveImage( 10169 VULKAN_HPP_NAMESPACE::Image srcImage, 10170 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 10171 VULKAN_HPP_NAMESPACE::Image dstImage, 10172 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 10173 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions ) const VULKAN_HPP_NOEXCEPT 10174 { 10175 getDispatcher()->vkCmdResolveImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 10176 static_cast<VkImage>( srcImage ), 10177 static_cast<VkImageLayout>( srcImageLayout ), 10178 static_cast<VkImage>( dstImage ), 10179 static_cast<VkImageLayout>( dstImageLayout ), 10180 regions.size(), 10181 reinterpret_cast<const VkImageResolve *>( regions.data() ) ); 10182 } 10183 10184 VULKAN_HPP_INLINE void setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask) const10185 CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, 10186 VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT 10187 { 10188 getDispatcher()->vkCmdSetEvent( static_cast<VkCommandBuffer>( m_commandBuffer ), 10189 static_cast<VkEvent>( event ), 10190 static_cast<VkPipelineStageFlags>( stageMask ) ); 10191 } 10192 10193 VULKAN_HPP_INLINE void resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask) const10194 CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, 10195 VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT 10196 { 10197 getDispatcher()->vkCmdResetEvent( static_cast<VkCommandBuffer>( m_commandBuffer ), 10198 static_cast<VkEvent>( event ), 10199 static_cast<VkPipelineStageFlags>( stageMask ) ); 10200 } 10201 waitEvents(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers) const10202 VULKAN_HPP_INLINE void CommandBuffer::waitEvents( 10203 ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 10204 VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, 10205 VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, 10206 ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, 10207 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, 10208 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT 10209 { 10210 getDispatcher()->vkCmdWaitEvents( static_cast<VkCommandBuffer>( m_commandBuffer ), 10211 events.size(), 10212 reinterpret_cast<const VkEvent *>( events.data() ), 10213 static_cast<VkPipelineStageFlags>( srcStageMask ), 10214 static_cast<VkPipelineStageFlags>( dstStageMask ), 10215 memoryBarriers.size(), 10216 reinterpret_cast<const VkMemoryBarrier *>( memoryBarriers.data() ), 10217 bufferMemoryBarriers.size(), 10218 reinterpret_cast<const VkBufferMemoryBarrier *>( bufferMemoryBarriers.data() ), 10219 imageMemoryBarriers.size(), 10220 reinterpret_cast<const VkImageMemoryBarrier *>( imageMemoryBarriers.data() ) ); 10221 } 10222 pipelineBarrier(VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags,ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers) const10223 VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( 10224 VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, 10225 VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, 10226 VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, 10227 ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, 10228 ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, 10229 ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT 10230 { 10231 getDispatcher()->vkCmdPipelineBarrier( 10232 static_cast<VkCommandBuffer>( m_commandBuffer ), 10233 static_cast<VkPipelineStageFlags>( srcStageMask ), 10234 static_cast<VkPipelineStageFlags>( dstStageMask ), 10235 static_cast<VkDependencyFlags>( dependencyFlags ), 10236 memoryBarriers.size(), 10237 reinterpret_cast<const VkMemoryBarrier *>( memoryBarriers.data() ), 10238 bufferMemoryBarriers.size(), 10239 reinterpret_cast<const VkBufferMemoryBarrier *>( bufferMemoryBarriers.data() ), 10240 imageMemoryBarriers.size(), 10241 reinterpret_cast<const VkImageMemoryBarrier *>( imageMemoryBarriers.data() ) ); 10242 } 10243 10244 VULKAN_HPP_INLINE void beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags) const10245 CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 10246 uint32_t query, 10247 VULKAN_HPP_NAMESPACE::QueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT 10248 { 10249 getDispatcher()->vkCmdBeginQuery( static_cast<VkCommandBuffer>( m_commandBuffer ), 10250 static_cast<VkQueryPool>( queryPool ), 10251 query, 10252 static_cast<VkQueryControlFlags>( flags ) ); 10253 } 10254 endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query) const10255 VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 10256 uint32_t query ) const VULKAN_HPP_NOEXCEPT 10257 { 10258 getDispatcher()->vkCmdEndQuery( 10259 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query ); 10260 } 10261 resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const10262 VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 10263 uint32_t firstQuery, 10264 uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT 10265 { 10266 getDispatcher()->vkCmdResetQueryPool( static_cast<VkCommandBuffer>( m_commandBuffer ), 10267 static_cast<VkQueryPool>( queryPool ), 10268 firstQuery, 10269 queryCount ); 10270 } 10271 writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query) const10272 VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, 10273 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 10274 uint32_t query ) const VULKAN_HPP_NOEXCEPT 10275 { 10276 getDispatcher()->vkCmdWriteTimestamp( static_cast<VkCommandBuffer>( m_commandBuffer ), 10277 static_cast<VkPipelineStageFlagBits>( pipelineStage ), 10278 static_cast<VkQueryPool>( queryPool ), 10279 query ); 10280 } 10281 10282 VULKAN_HPP_INLINE void 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) const10283 CommandBuffer::copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 10284 uint32_t firstQuery, 10285 uint32_t queryCount, 10286 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 10287 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 10288 VULKAN_HPP_NAMESPACE::DeviceSize stride, 10289 VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT 10290 { 10291 getDispatcher()->vkCmdCopyQueryPoolResults( static_cast<VkCommandBuffer>( m_commandBuffer ), 10292 static_cast<VkQueryPool>( queryPool ), 10293 firstQuery, 10294 queryCount, 10295 static_cast<VkBuffer>( dstBuffer ), 10296 static_cast<VkDeviceSize>( dstOffset ), 10297 static_cast<VkDeviceSize>( stride ), 10298 static_cast<VkQueryResultFlags>( flags ) ); 10299 } 10300 10301 template <typename T> pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,uint32_t offset,ArrayProxy<const T> const & values) const10302 VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, 10303 VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, 10304 uint32_t offset, 10305 ArrayProxy<const T> const & values ) const VULKAN_HPP_NOEXCEPT 10306 { 10307 getDispatcher()->vkCmdPushConstants( static_cast<VkCommandBuffer>( m_commandBuffer ), 10308 static_cast<VkPipelineLayout>( layout ), 10309 static_cast<VkShaderStageFlags>( stageFlags ), 10310 offset, 10311 values.size() * sizeof( T ), 10312 reinterpret_cast<const void *>( values.data() ) ); 10313 } 10314 10315 VULKAN_HPP_INLINE void beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents) const10316 CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 10317 VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT 10318 { 10319 getDispatcher()->vkCmdBeginRenderPass( static_cast<VkCommandBuffer>( m_commandBuffer ), 10320 reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), 10321 static_cast<VkSubpassContents>( contents ) ); 10322 } 10323 10324 VULKAN_HPP_INLINE void nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents) const10325 CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT 10326 { 10327 getDispatcher()->vkCmdNextSubpass( static_cast<VkCommandBuffer>( m_commandBuffer ), 10328 static_cast<VkSubpassContents>( contents ) ); 10329 } 10330 endRenderPass() const10331 VULKAN_HPP_INLINE void CommandBuffer::endRenderPass() const VULKAN_HPP_NOEXCEPT 10332 { 10333 getDispatcher()->vkCmdEndRenderPass( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 10334 } 10335 executeCommands(ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers) const10336 VULKAN_HPP_INLINE void CommandBuffer::executeCommands( 10337 ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers ) const VULKAN_HPP_NOEXCEPT 10338 { 10339 getDispatcher()->vkCmdExecuteCommands( static_cast<VkCommandBuffer>( m_commandBuffer ), 10340 commandBuffers.size(), 10341 reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) ); 10342 } 10343 10344 //=== VK_VERSION_1_1 === 10345 enumerateInstanceVersion() const10346 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Context::enumerateInstanceVersion() const 10347 { 10348 uint32_t apiVersion; 10349 VULKAN_HPP_NAMESPACE::Result result = 10350 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceVersion( &apiVersion ) ); 10351 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10352 { 10353 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceVersion" ); 10354 } 10355 return apiVersion; 10356 } 10357 10358 VULKAN_HPP_INLINE void bindBufferMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos) const10359 Device::bindBufferMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const 10360 { 10361 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 10362 getDispatcher()->vkBindBufferMemory2( static_cast<VkDevice>( m_device ), 10363 bindInfos.size(), 10364 reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) ); 10365 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10366 { 10367 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" ); 10368 } 10369 } 10370 10371 VULKAN_HPP_INLINE void bindImageMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos) const10372 Device::bindImageMemory2( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const 10373 { 10374 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 10375 getDispatcher()->vkBindImageMemory2( static_cast<VkDevice>( m_device ), 10376 bindInfos.size(), 10377 reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) ); 10378 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10379 { 10380 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" ); 10381 } 10382 } 10383 10384 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex) const10385 Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, 10386 uint32_t localDeviceIndex, 10387 uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT 10388 { 10389 VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; 10390 getDispatcher()->vkGetDeviceGroupPeerMemoryFeatures( 10391 static_cast<VkDevice>( m_device ), 10392 heapIndex, 10393 localDeviceIndex, 10394 remoteDeviceIndex, 10395 reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) ); 10396 return peerMemoryFeatures; 10397 } 10398 setDeviceMask(uint32_t deviceMask) const10399 VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT 10400 { 10401 getDispatcher()->vkCmdSetDeviceMask( static_cast<VkCommandBuffer>( m_commandBuffer ), deviceMask ); 10402 } 10403 dispatchBase(uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const10404 VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, 10405 uint32_t baseGroupY, 10406 uint32_t baseGroupZ, 10407 uint32_t groupCountX, 10408 uint32_t groupCountY, 10409 uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT 10410 { 10411 getDispatcher()->vkCmdDispatchBase( static_cast<VkCommandBuffer>( m_commandBuffer ), 10412 baseGroupX, 10413 baseGroupY, 10414 baseGroupZ, 10415 groupCountX, 10416 groupCountY, 10417 groupCountZ ); 10418 } 10419 10420 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> enumeratePhysicalDeviceGroups() const10421 Instance::enumeratePhysicalDeviceGroups() const 10422 { 10423 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> physicalDeviceGroupProperties; 10424 uint32_t physicalDeviceGroupCount; 10425 VULKAN_HPP_NAMESPACE::Result result; 10426 do 10427 { 10428 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceGroups( 10429 static_cast<VkInstance>( m_instance ), &physicalDeviceGroupCount, nullptr ) ); 10430 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount ) 10431 { 10432 physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); 10433 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceGroups( 10434 static_cast<VkInstance>( m_instance ), 10435 &physicalDeviceGroupCount, 10436 reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) ); 10437 VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); 10438 } 10439 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 10440 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 10441 ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) 10442 { 10443 physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); 10444 } 10445 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10446 { 10447 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" ); 10448 } 10449 return physicalDeviceGroupProperties; 10450 } 10451 10452 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info) const10453 Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const 10454 VULKAN_HPP_NOEXCEPT 10455 { 10456 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 10457 getDispatcher()->vkGetImageMemoryRequirements2( 10458 static_cast<VkDevice>( m_device ), 10459 reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), 10460 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 10461 return memoryRequirements; 10462 } 10463 10464 template <typename X, typename Y, typename... Z> getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info) const10465 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2( 10466 const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 10467 { 10468 StructureChain<X, Y, Z...> structureChain; 10469 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = 10470 structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 10471 getDispatcher()->vkGetImageMemoryRequirements2( 10472 static_cast<VkDevice>( m_device ), 10473 reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), 10474 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 10475 return structureChain; 10476 } 10477 10478 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info) const10479 Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const 10480 VULKAN_HPP_NOEXCEPT 10481 { 10482 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 10483 getDispatcher()->vkGetBufferMemoryRequirements2( 10484 static_cast<VkDevice>( m_device ), 10485 reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), 10486 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 10487 return memoryRequirements; 10488 } 10489 10490 template <typename X, typename Y, typename... Z> getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info) const10491 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2( 10492 const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 10493 { 10494 StructureChain<X, Y, Z...> structureChain; 10495 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = 10496 structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 10497 getDispatcher()->vkGetBufferMemoryRequirements2( 10498 static_cast<VkDevice>( m_device ), 10499 reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), 10500 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 10501 return structureChain; 10502 } 10503 10504 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info) const10505 Device::getImageSparseMemoryRequirements2( 10506 const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 10507 { 10508 uint32_t sparseMemoryRequirementCount; 10509 getDispatcher()->vkGetImageSparseMemoryRequirements2( 10510 static_cast<VkDevice>( m_device ), 10511 reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), 10512 &sparseMemoryRequirementCount, 10513 nullptr ); 10514 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements( 10515 sparseMemoryRequirementCount ); 10516 getDispatcher()->vkGetImageSparseMemoryRequirements2( 10517 static_cast<VkDevice>( m_device ), 10518 reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), 10519 &sparseMemoryRequirementCount, 10520 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) ); 10521 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 10522 return sparseMemoryRequirements; 10523 } 10524 10525 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2() const10526 PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT 10527 { 10528 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; 10529 getDispatcher()->vkGetPhysicalDeviceFeatures2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 10530 reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) ); 10531 return features; 10532 } 10533 10534 template <typename X, typename Y, typename... Z> 10535 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getFeatures2() const10536 PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT 10537 { 10538 StructureChain<X, Y, Z...> structureChain; 10539 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = 10540 structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>(); 10541 getDispatcher()->vkGetPhysicalDeviceFeatures2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 10542 reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) ); 10543 return structureChain; 10544 } 10545 10546 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2() const10547 PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT 10548 { 10549 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; 10550 getDispatcher()->vkGetPhysicalDeviceProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 10551 reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) ); 10552 return properties; 10553 } 10554 10555 template <typename X, typename Y, typename... Z> 10556 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getProperties2() const10557 PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT 10558 { 10559 StructureChain<X, Y, Z...> structureChain; 10560 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = 10561 structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>(); 10562 getDispatcher()->vkGetPhysicalDeviceProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 10563 reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) ); 10564 return structureChain; 10565 } 10566 10567 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format) const10568 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 10569 { 10570 VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; 10571 getDispatcher()->vkGetPhysicalDeviceFormatProperties2( 10572 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10573 static_cast<VkFormat>( format ), 10574 reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) ); 10575 return formatProperties; 10576 } 10577 10578 template <typename X, typename Y, typename... Z> 10579 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format) const10580 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 10581 { 10582 StructureChain<X, Y, Z...> structureChain; 10583 VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = 10584 structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>(); 10585 getDispatcher()->vkGetPhysicalDeviceFormatProperties2( 10586 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10587 static_cast<VkFormat>( format ), 10588 reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) ); 10589 return structureChain; 10590 } 10591 10592 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties2 getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo) const10593 PhysicalDevice::getImageFormatProperties2( 10594 const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const 10595 { 10596 VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; 10597 VULKAN_HPP_NAMESPACE::Result result = 10598 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( 10599 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10600 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), 10601 reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) ); 10602 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10603 { 10604 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); 10605 } 10606 return imageFormatProperties; 10607 } 10608 10609 template <typename X, typename Y, typename... Z> getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo) const10610 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> PhysicalDevice::getImageFormatProperties2( 10611 const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const 10612 { 10613 StructureChain<X, Y, Z...> structureChain; 10614 VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = 10615 structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>(); 10616 VULKAN_HPP_NAMESPACE::Result result = 10617 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( 10618 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10619 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), 10620 reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) ); 10621 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10622 { 10623 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); 10624 } 10625 return structureChain; 10626 } 10627 10628 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> getQueueFamilyProperties2() const10629 PhysicalDevice::getQueueFamilyProperties2() const VULKAN_HPP_NOEXCEPT 10630 { 10631 uint32_t queueFamilyPropertyCount; 10632 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( 10633 static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 10634 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount ); 10635 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( 10636 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10637 &queueFamilyPropertyCount, 10638 reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) ); 10639 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 10640 return queueFamilyProperties; 10641 } 10642 10643 template <typename StructureChain> getQueueFamilyProperties2() const10644 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> PhysicalDevice::getQueueFamilyProperties2() const 10645 { 10646 uint32_t queueFamilyPropertyCount; 10647 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( 10648 static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 10649 std::vector<StructureChain> returnVector( queueFamilyPropertyCount ); 10650 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount ); 10651 for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) 10652 { 10653 queueFamilyProperties[i].pNext = 10654 returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext; 10655 } 10656 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( 10657 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10658 &queueFamilyPropertyCount, 10659 reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) ); 10660 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 10661 for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) 10662 { 10663 returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i]; 10664 } 10665 return returnVector; 10666 } 10667 10668 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2() const10669 PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT 10670 { 10671 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; 10672 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2( 10673 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10674 reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) ); 10675 return memoryProperties; 10676 } 10677 10678 template <typename X, typename Y, typename... Z> 10679 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getMemoryProperties2() const10680 PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT 10681 { 10682 StructureChain<X, Y, Z...> structureChain; 10683 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = 10684 structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>(); 10685 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2( 10686 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10687 reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) ); 10688 return structureChain; 10689 } 10690 10691 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo) const10692 PhysicalDevice::getSparseImageFormatProperties2( 10693 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const VULKAN_HPP_NOEXCEPT 10694 { 10695 uint32_t propertyCount; 10696 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2( 10697 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10698 reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), 10699 &propertyCount, 10700 nullptr ); 10701 std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> properties( propertyCount ); 10702 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2( 10703 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10704 reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), 10705 &propertyCount, 10706 reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) ); 10707 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 10708 return properties; 10709 } 10710 10711 VULKAN_HPP_INLINE void trim(VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags) const10712 CommandPool::trim( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT 10713 { 10714 getDispatcher()->vkTrimCommandPool( static_cast<VkDevice>( m_device ), 10715 static_cast<VkCommandPool>( m_commandPool ), 10716 static_cast<VkCommandPoolTrimFlags>( flags ) ); 10717 } 10718 10719 VULKAN_HPP_INLINE void updateWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const10720 DescriptorSet::updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 10721 const void * pData ) const VULKAN_HPP_NOEXCEPT 10722 { 10723 getDispatcher()->vkUpdateDescriptorSetWithTemplate( 10724 static_cast<VkDevice>( m_device ), 10725 static_cast<VkDescriptorSet>( m_descriptorSet ), 10726 static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), 10727 pData ); 10728 } 10729 10730 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo) const10731 PhysicalDevice::getExternalBufferProperties( 10732 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT 10733 { 10734 VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; 10735 getDispatcher()->vkGetPhysicalDeviceExternalBufferProperties( 10736 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10737 reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), 10738 reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) ); 10739 return externalBufferProperties; 10740 } 10741 10742 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo) const10743 PhysicalDevice::getExternalFenceProperties( 10744 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT 10745 { 10746 VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; 10747 getDispatcher()->vkGetPhysicalDeviceExternalFenceProperties( 10748 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10749 reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), 10750 reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) ); 10751 return externalFenceProperties; 10752 } 10753 10754 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo) const10755 PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & 10756 externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT 10757 { 10758 VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; 10759 getDispatcher()->vkGetPhysicalDeviceExternalSemaphoreProperties( 10760 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10761 reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), 10762 reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) ); 10763 return externalSemaphoreProperties; 10764 } 10765 10766 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo) const10767 Device::getDescriptorSetLayoutSupport( 10768 const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 10769 { 10770 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; 10771 getDispatcher()->vkGetDescriptorSetLayoutSupport( 10772 static_cast<VkDevice>( m_device ), 10773 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 10774 reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) ); 10775 return support; 10776 } 10777 10778 template <typename X, typename Y, typename... Z> getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo) const10779 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupport( 10780 const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 10781 { 10782 StructureChain<X, Y, Z...> structureChain; 10783 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = 10784 structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>(); 10785 getDispatcher()->vkGetDescriptorSetLayoutSupport( 10786 static_cast<VkDevice>( m_device ), 10787 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 10788 reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) ); 10789 return structureChain; 10790 } 10791 10792 //=== VK_VERSION_1_2 === 10793 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) const10794 VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, 10795 VULKAN_HPP_NAMESPACE::DeviceSize offset, 10796 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 10797 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 10798 uint32_t maxDrawCount, 10799 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 10800 { 10801 getDispatcher()->vkCmdDrawIndirectCount( static_cast<VkCommandBuffer>( m_commandBuffer ), 10802 static_cast<VkBuffer>( buffer ), 10803 static_cast<VkDeviceSize>( offset ), 10804 static_cast<VkBuffer>( countBuffer ), 10805 static_cast<VkDeviceSize>( countBufferOffset ), 10806 maxDrawCount, 10807 stride ); 10808 } 10809 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) const10810 VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, 10811 VULKAN_HPP_NAMESPACE::DeviceSize offset, 10812 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 10813 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 10814 uint32_t maxDrawCount, 10815 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 10816 { 10817 getDispatcher()->vkCmdDrawIndexedIndirectCount( static_cast<VkCommandBuffer>( m_commandBuffer ), 10818 static_cast<VkBuffer>( buffer ), 10819 static_cast<VkDeviceSize>( offset ), 10820 static_cast<VkBuffer>( countBuffer ), 10821 static_cast<VkDeviceSize>( countBufferOffset ), 10822 maxDrawCount, 10823 stride ); 10824 } 10825 beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo) const10826 VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( 10827 const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 10828 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT 10829 { 10830 getDispatcher()->vkCmdBeginRenderPass2( static_cast<VkCommandBuffer>( m_commandBuffer ), 10831 reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), 10832 reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) ); 10833 } 10834 nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo) const10835 VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( 10836 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo, 10837 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT 10838 { 10839 getDispatcher()->vkCmdNextSubpass2( static_cast<VkCommandBuffer>( m_commandBuffer ), 10840 reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), 10841 reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) ); 10842 } 10843 endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo) const10844 VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( 10845 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT 10846 { 10847 getDispatcher()->vkCmdEndRenderPass2( static_cast<VkCommandBuffer>( m_commandBuffer ), 10848 reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) ); 10849 } 10850 reset(uint32_t firstQuery,uint32_t queryCount) const10851 VULKAN_HPP_INLINE void QueryPool::reset( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT 10852 { 10853 getDispatcher()->vkResetQueryPool( 10854 static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( m_queryPool ), firstQuery, queryCount ); 10855 } 10856 getCounterValue() const10857 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValue() const 10858 { 10859 uint64_t value; 10860 VULKAN_HPP_NAMESPACE::Result result = 10861 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreCounterValue( 10862 static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), &value ) ); 10863 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10864 { 10865 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValue" ); 10866 } 10867 return value; 10868 } 10869 10870 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo,uint64_t timeout) const10871 Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const 10872 { 10873 VULKAN_HPP_NAMESPACE::Result result = 10874 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWaitSemaphores( 10875 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) ); 10876 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 10877 ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) ) 10878 { 10879 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores" ); 10880 } 10881 return result; 10882 } 10883 signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo) const10884 VULKAN_HPP_INLINE void Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const 10885 { 10886 VULKAN_HPP_NAMESPACE::Result result = 10887 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSignalSemaphore( 10888 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) ); 10889 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10890 { 10891 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" ); 10892 } 10893 } 10894 10895 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const10896 Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 10897 { 10898 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( getDispatcher()->vkGetBufferDeviceAddress( 10899 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ) ); 10900 } 10901 getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const10902 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( 10903 const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 10904 { 10905 return getDispatcher()->vkGetBufferOpaqueCaptureAddress( 10906 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ); 10907 } 10908 getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info) const10909 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( 10910 const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 10911 { 10912 return getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddress( 10913 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) ); 10914 } 10915 10916 //=== VK_KHR_surface === 10917 10918 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const10919 PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 10920 { 10921 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR && 10922 "Function <vkGetPhysicalDeviceSurfaceSupportKHR> needs extension <VK_KHR_surface> enabled!" ); 10923 10924 VULKAN_HPP_NAMESPACE::Bool32 supported; 10925 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 10926 getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 10927 queueFamilyIndex, 10928 static_cast<VkSurfaceKHR>( surface ), 10929 reinterpret_cast<VkBool32 *>( &supported ) ) ); 10930 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10931 { 10932 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" ); 10933 } 10934 return supported; 10935 } 10936 10937 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const10938 PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 10939 { 10940 VULKAN_HPP_ASSERT( 10941 getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR && 10942 "Function <vkGetPhysicalDeviceSurfaceCapabilitiesKHR> needs extension <VK_KHR_surface> enabled!" ); 10943 10944 VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities; 10945 VULKAN_HPP_NAMESPACE::Result result = 10946 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR( 10947 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10948 static_cast<VkSurfaceKHR>( surface ), 10949 reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) ) ); 10950 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10951 { 10952 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" ); 10953 } 10954 return surfaceCapabilities; 10955 } 10956 10957 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR> getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const10958 PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 10959 { 10960 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR && 10961 "Function <vkGetPhysicalDeviceSurfaceFormatsKHR> needs extension <VK_KHR_surface> enabled!" ); 10962 10963 std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR> surfaceFormats; 10964 uint32_t surfaceFormatCount; 10965 VULKAN_HPP_NAMESPACE::Result result; 10966 do 10967 { 10968 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 10969 getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 10970 static_cast<VkSurfaceKHR>( surface ), 10971 &surfaceFormatCount, 10972 nullptr ) ); 10973 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount ) 10974 { 10975 surfaceFormats.resize( surfaceFormatCount ); 10976 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR( 10977 static_cast<VkPhysicalDevice>( m_physicalDevice ), 10978 static_cast<VkSurfaceKHR>( surface ), 10979 &surfaceFormatCount, 10980 reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) ); 10981 VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); 10982 } 10983 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 10984 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) 10985 { 10986 surfaceFormats.resize( surfaceFormatCount ); 10987 } 10988 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10989 { 10990 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" ); 10991 } 10992 return surfaceFormats; 10993 } 10994 10995 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const10996 PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 10997 { 10998 VULKAN_HPP_ASSERT( 10999 getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR && 11000 "Function <vkGetPhysicalDeviceSurfacePresentModesKHR> needs extension <VK_KHR_surface> enabled!" ); 11001 11002 std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> presentModes; 11003 uint32_t presentModeCount; 11004 VULKAN_HPP_NAMESPACE::Result result; 11005 do 11006 { 11007 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11008 getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 11009 static_cast<VkSurfaceKHR>( surface ), 11010 &presentModeCount, 11011 nullptr ) ); 11012 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount ) 11013 { 11014 presentModes.resize( presentModeCount ); 11015 result = 11016 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR( 11017 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11018 static_cast<VkSurfaceKHR>( surface ), 11019 &presentModeCount, 11020 reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) ); 11021 VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); 11022 } 11023 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11024 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) 11025 { 11026 presentModes.resize( presentModeCount ); 11027 } 11028 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11029 { 11030 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" ); 11031 } 11032 return presentModes; 11033 } 11034 11035 //=== VK_KHR_swapchain === 11036 getImages() const11037 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VkImage> SwapchainKHR::getImages() const 11038 { 11039 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainImagesKHR && 11040 "Function <vkGetSwapchainImagesKHR> needs extension <VK_KHR_swapchain> enabled!" ); 11041 11042 std::vector<VkImage> swapchainImages; 11043 uint32_t swapchainImageCount; 11044 VULKAN_HPP_NAMESPACE::Result result; 11045 do 11046 { 11047 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11048 getDispatcher()->vkGetSwapchainImagesKHR( static_cast<VkDevice>( m_device ), 11049 static_cast<VkSwapchainKHR>( m_swapchainKHR ), 11050 &swapchainImageCount, 11051 nullptr ) ); 11052 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && swapchainImageCount ) 11053 { 11054 swapchainImages.resize( swapchainImageCount ); 11055 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11056 getDispatcher()->vkGetSwapchainImagesKHR( static_cast<VkDevice>( m_device ), 11057 static_cast<VkSwapchainKHR>( m_swapchainKHR ), 11058 &swapchainImageCount, 11059 swapchainImages.data() ) ); 11060 VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); 11061 } 11062 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11063 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) ) 11064 { 11065 swapchainImages.resize( swapchainImageCount ); 11066 } 11067 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11068 { 11069 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getImages" ); 11070 } 11071 return swapchainImages; 11072 } 11073 11074 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t> acquireNextImage(uint64_t timeout,VULKAN_HPP_NAMESPACE::Semaphore semaphore,VULKAN_HPP_NAMESPACE::Fence fence) const11075 SwapchainKHR::acquireNextImage( uint64_t timeout, 11076 VULKAN_HPP_NAMESPACE::Semaphore semaphore, 11077 VULKAN_HPP_NAMESPACE::Fence fence ) const 11078 { 11079 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImageKHR && 11080 "Function <vkAcquireNextImageKHR> needs extension <VK_KHR_swapchain> enabled!" ); 11081 11082 uint32_t imageIndex; 11083 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11084 getDispatcher()->vkAcquireNextImageKHR( static_cast<VkDevice>( m_device ), 11085 static_cast<VkSwapchainKHR>( m_swapchainKHR ), 11086 timeout, 11087 static_cast<VkSemaphore>( semaphore ), 11088 static_cast<VkFence>( fence ), 11089 &imageIndex ) ); 11090 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 11091 ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) && 11092 ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) && 11093 ( result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR ) ) 11094 { 11095 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireNextImage" ); 11096 } 11097 return std::make_pair( result, imageIndex ); 11098 } 11099 11100 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo) const11101 Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo ) const 11102 { 11103 VULKAN_HPP_ASSERT( getDispatcher()->vkQueuePresentKHR && 11104 "Function <vkQueuePresentKHR> needs extension <VK_KHR_swapchain> enabled!" ); 11105 11106 VULKAN_HPP_NAMESPACE::Result result = 11107 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueuePresentKHR( 11108 static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) ); 11109 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 11110 ( result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR ) ) 11111 { 11112 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR" ); 11113 } 11114 return result; 11115 } 11116 11117 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR getGroupPresentCapabilitiesKHR() const11118 Device::getGroupPresentCapabilitiesKHR() const 11119 { 11120 VULKAN_HPP_ASSERT( 11121 getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR && 11122 "Function <vkGetDeviceGroupPresentCapabilitiesKHR> needs extension <VK_KHR_swapchain> enabled!" ); 11123 11124 VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; 11125 VULKAN_HPP_NAMESPACE::Result result = 11126 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR( 11127 static_cast<VkDevice>( m_device ), 11128 reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) ); 11129 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11130 { 11131 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" ); 11132 } 11133 return deviceGroupPresentCapabilities; 11134 } 11135 11136 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const11137 Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 11138 { 11139 VULKAN_HPP_ASSERT( 11140 getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR && 11141 "Function <vkGetDeviceGroupSurfacePresentModesKHR> needs extension <VK_KHR_swapchain> enabled!" ); 11142 11143 VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; 11144 VULKAN_HPP_NAMESPACE::Result result = 11145 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR( 11146 static_cast<VkDevice>( m_device ), 11147 static_cast<VkSurfaceKHR>( surface ), 11148 reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) ); 11149 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11150 { 11151 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" ); 11152 } 11153 return modes; 11154 } 11155 11156 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::Rect2D> getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const11157 PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 11158 { 11159 VULKAN_HPP_ASSERT( 11160 getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR && 11161 "Function <vkGetPhysicalDevicePresentRectanglesKHR> needs extension <VK_KHR_swapchain> enabled!" ); 11162 11163 std::vector<VULKAN_HPP_NAMESPACE::Rect2D> rects; 11164 uint32_t rectCount; 11165 VULKAN_HPP_NAMESPACE::Result result; 11166 do 11167 { 11168 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11169 getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 11170 static_cast<VkSurfaceKHR>( surface ), 11171 &rectCount, 11172 nullptr ) ); 11173 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && rectCount ) 11174 { 11175 rects.resize( rectCount ); 11176 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11177 getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 11178 static_cast<VkSurfaceKHR>( surface ), 11179 &rectCount, 11180 reinterpret_cast<VkRect2D *>( rects.data() ) ) ); 11181 VULKAN_HPP_ASSERT( rectCount <= rects.size() ); 11182 } 11183 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11184 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( rectCount < rects.size() ) ) 11185 { 11186 rects.resize( rectCount ); 11187 } 11188 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11189 { 11190 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" ); 11191 } 11192 return rects; 11193 } 11194 11195 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t> acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo) const11196 Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo ) const 11197 { 11198 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImage2KHR && 11199 "Function <vkAcquireNextImage2KHR> needs extension <VK_KHR_swapchain> enabled!" ); 11200 11201 uint32_t imageIndex; 11202 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11203 getDispatcher()->vkAcquireNextImage2KHR( static_cast<VkDevice>( m_device ), 11204 reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), 11205 &imageIndex ) ); 11206 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 11207 ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) && 11208 ( result != VULKAN_HPP_NAMESPACE::Result::eNotReady ) && 11209 ( result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR ) ) 11210 { 11211 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR" ); 11212 } 11213 return std::make_pair( result, imageIndex ); 11214 } 11215 11216 //=== VK_KHR_display === 11217 11218 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> getDisplayPropertiesKHR() const11219 PhysicalDevice::getDisplayPropertiesKHR() const 11220 { 11221 VULKAN_HPP_ASSERT( 11222 getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR && 11223 "Function <vkGetPhysicalDeviceDisplayPropertiesKHR> needs extension <VK_KHR_display> enabled!" ); 11224 11225 std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> properties; 11226 uint32_t propertyCount; 11227 VULKAN_HPP_NAMESPACE::Result result; 11228 do 11229 { 11230 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR( 11231 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 11232 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 11233 { 11234 properties.resize( propertyCount ); 11235 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR( 11236 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11237 &propertyCount, 11238 reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) ); 11239 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 11240 } 11241 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11242 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 11243 { 11244 properties.resize( propertyCount ); 11245 } 11246 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11247 { 11248 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" ); 11249 } 11250 return properties; 11251 } 11252 11253 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> getDisplayPlanePropertiesKHR() const11254 PhysicalDevice::getDisplayPlanePropertiesKHR() const 11255 { 11256 VULKAN_HPP_ASSERT( 11257 getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR && 11258 "Function <vkGetPhysicalDeviceDisplayPlanePropertiesKHR> needs extension <VK_KHR_display> enabled!" ); 11259 11260 std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> properties; 11261 uint32_t propertyCount; 11262 VULKAN_HPP_NAMESPACE::Result result; 11263 do 11264 { 11265 result = 11266 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR( 11267 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 11268 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 11269 { 11270 properties.resize( propertyCount ); 11271 result = 11272 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR( 11273 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11274 &propertyCount, 11275 reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) ); 11276 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 11277 } 11278 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11279 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 11280 { 11281 properties.resize( propertyCount ); 11282 } 11283 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11284 { 11285 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" ); 11286 } 11287 return properties; 11288 } 11289 11290 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> getModeProperties() const11291 DisplayKHR::getModeProperties() const 11292 { 11293 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModePropertiesKHR && 11294 "Function <vkGetDisplayModePropertiesKHR> needs extension <VK_KHR_display> enabled!" ); 11295 11296 std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> properties; 11297 uint32_t propertyCount; 11298 VULKAN_HPP_NAMESPACE::Result result; 11299 do 11300 { 11301 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11302 getDispatcher()->vkGetDisplayModePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 11303 static_cast<VkDisplayKHR>( m_displayKHR ), 11304 &propertyCount, 11305 nullptr ) ); 11306 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 11307 { 11308 properties.resize( propertyCount ); 11309 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayModePropertiesKHR( 11310 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11311 static_cast<VkDisplayKHR>( m_displayKHR ), 11312 &propertyCount, 11313 reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) ); 11314 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 11315 } 11316 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11317 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 11318 { 11319 properties.resize( propertyCount ); 11320 } 11321 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11322 { 11323 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties" ); 11324 } 11325 return properties; 11326 } 11327 11328 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR getDisplayPlaneCapabilities(uint32_t planeIndex) const11329 DisplayModeKHR::getDisplayPlaneCapabilities( uint32_t planeIndex ) const 11330 { 11331 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR && 11332 "Function <vkGetDisplayPlaneCapabilitiesKHR> needs extension <VK_KHR_display> enabled!" ); 11333 11334 VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities; 11335 VULKAN_HPP_NAMESPACE::Result result = 11336 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR( 11337 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11338 static_cast<VkDisplayModeKHR>( m_displayModeKHR ), 11339 planeIndex, 11340 reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) ) ); 11341 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11342 { 11343 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayModeKHR::getDisplayPlaneCapabilities" ); 11344 } 11345 return capabilities; 11346 } 11347 11348 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 11349 //=== VK_KHR_xlib_surface === 11350 getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID) const11351 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXlibPresentationSupportKHR( 11352 uint32_t queueFamilyIndex, Display & dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT 11353 { 11354 VULKAN_HPP_ASSERT( 11355 getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR && 11356 "Function <vkGetPhysicalDeviceXlibPresentationSupportKHR> needs extension <VK_KHR_xlib_surface> enabled!" ); 11357 11358 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR( 11359 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &dpy, visualID ) ); 11360 } 11361 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 11362 11363 # if defined( VK_USE_PLATFORM_XCB_KHR ) 11364 //=== VK_KHR_xcb_surface === 11365 getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id) const11366 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXcbPresentationSupportKHR( 11367 uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT 11368 { 11369 VULKAN_HPP_ASSERT( 11370 getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR && 11371 "Function <vkGetPhysicalDeviceXcbPresentationSupportKHR> needs extension <VK_KHR_xcb_surface> enabled!" ); 11372 11373 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR( 11374 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &connection, visual_id ) ); 11375 } 11376 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 11377 11378 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 11379 //=== VK_KHR_wayland_surface === 11380 11381 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display) const11382 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, 11383 struct wl_display & display ) const VULKAN_HPP_NOEXCEPT 11384 { 11385 VULKAN_HPP_ASSERT( 11386 getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR && 11387 "Function <vkGetPhysicalDeviceWaylandPresentationSupportKHR> needs extension <VK_KHR_wayland_surface> enabled!" ); 11388 11389 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( 11390 getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR( 11391 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &display ) ); 11392 } 11393 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 11394 11395 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 11396 //=== VK_KHR_win32_surface === 11397 11398 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getWin32PresentationSupportKHR(uint32_t queueFamilyIndex) const11399 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT 11400 { 11401 VULKAN_HPP_ASSERT( 11402 getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR && 11403 "Function <vkGetPhysicalDeviceWin32PresentationSupportKHR> needs extension <VK_KHR_win32_surface> enabled!" ); 11404 11405 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR( 11406 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex ) ); 11407 } 11408 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 11409 11410 //=== VK_EXT_debug_report === 11411 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) const11412 VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, 11413 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, 11414 uint64_t object, 11415 size_t location, 11416 int32_t messageCode, 11417 const std::string & layerPrefix, 11418 const std::string & message ) const VULKAN_HPP_NOEXCEPT 11419 { 11420 VULKAN_HPP_ASSERT( getDispatcher()->vkDebugReportMessageEXT && 11421 "Function <vkDebugReportMessageEXT> needs extension <VK_EXT_debug_report> enabled!" ); 11422 11423 getDispatcher()->vkDebugReportMessageEXT( static_cast<VkInstance>( m_instance ), 11424 static_cast<VkDebugReportFlagsEXT>( flags ), 11425 static_cast<VkDebugReportObjectTypeEXT>( objectType_ ), 11426 object, 11427 location, 11428 messageCode, 11429 layerPrefix.c_str(), 11430 message.c_str() ); 11431 } 11432 11433 //=== VK_EXT_debug_marker === 11434 11435 VULKAN_HPP_INLINE void debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo) const11436 Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo ) const 11437 { 11438 VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectTagEXT && 11439 "Function <vkDebugMarkerSetObjectTagEXT> needs extension <VK_EXT_debug_marker> enabled!" ); 11440 11441 VULKAN_HPP_NAMESPACE::Result result = 11442 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDebugMarkerSetObjectTagEXT( 11443 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) ); 11444 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11445 { 11446 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" ); 11447 } 11448 } 11449 11450 VULKAN_HPP_INLINE void debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo) const11451 Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo ) const 11452 { 11453 VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectNameEXT && 11454 "Function <vkDebugMarkerSetObjectNameEXT> needs extension <VK_EXT_debug_marker> enabled!" ); 11455 11456 VULKAN_HPP_NAMESPACE::Result result = 11457 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDebugMarkerSetObjectNameEXT( 11458 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) ); 11459 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11460 { 11461 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" ); 11462 } 11463 } 11464 debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo) const11465 VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( 11466 const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT 11467 { 11468 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerBeginEXT && 11469 "Function <vkCmdDebugMarkerBeginEXT> needs extension <VK_EXT_debug_marker> enabled!" ); 11470 11471 getDispatcher()->vkCmdDebugMarkerBeginEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 11472 reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) ); 11473 } 11474 debugMarkerEndEXT() const11475 VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT 11476 { 11477 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerEndEXT && 11478 "Function <vkCmdDebugMarkerEndEXT> needs extension <VK_EXT_debug_marker> enabled!" ); 11479 11480 getDispatcher()->vkCmdDebugMarkerEndEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 11481 } 11482 debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo) const11483 VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( 11484 const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT 11485 { 11486 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerInsertEXT && 11487 "Function <vkCmdDebugMarkerInsertEXT> needs extension <VK_EXT_debug_marker> enabled!" ); 11488 11489 getDispatcher()->vkCmdDebugMarkerInsertEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 11490 reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) ); 11491 } 11492 11493 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 11494 //=== VK_KHR_video_queue === 11495 11496 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileKHR & videoProfile) const11497 PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileKHR & videoProfile ) const 11498 { 11499 VULKAN_HPP_ASSERT( 11500 getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR && 11501 "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> needs extension <VK_KHR_video_queue> enabled!" ); 11502 11503 VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR capabilities; 11504 VULKAN_HPP_NAMESPACE::Result result = 11505 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( 11506 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11507 reinterpret_cast<const VkVideoProfileKHR *>( &videoProfile ), 11508 reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) ); 11509 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11510 { 11511 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); 11512 } 11513 return capabilities; 11514 } 11515 11516 template <typename X, typename Y, typename... Z> 11517 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileKHR & videoProfile) const11518 PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileKHR & videoProfile ) const 11519 { 11520 StructureChain<X, Y, Z...> structureChain; 11521 VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR & capabilities = 11522 structureChain.template get<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>(); 11523 VULKAN_HPP_NAMESPACE::Result result = 11524 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( 11525 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11526 reinterpret_cast<const VkVideoProfileKHR *>( &videoProfile ), 11527 reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) ); 11528 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11529 { 11530 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); 11531 } 11532 return structureChain; 11533 } 11534 11535 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo) const11536 PhysicalDevice::getVideoFormatPropertiesKHR( 11537 const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const 11538 { 11539 VULKAN_HPP_ASSERT( 11540 getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR && 11541 "Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> needs extension <VK_KHR_video_queue> enabled!" ); 11542 11543 std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> videoFormatProperties; 11544 uint32_t videoFormatPropertyCount; 11545 VULKAN_HPP_NAMESPACE::Result result; 11546 do 11547 { 11548 result = 11549 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR( 11550 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11551 reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), 11552 &videoFormatPropertyCount, 11553 nullptr ) ); 11554 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount ) 11555 { 11556 videoFormatProperties.resize( videoFormatPropertyCount ); 11557 result = 11558 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR( 11559 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11560 reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), 11561 &videoFormatPropertyCount, 11562 reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) ); 11563 VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() ); 11564 } 11565 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11566 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 11567 ( videoFormatPropertyCount < videoFormatProperties.size() ) ) 11568 { 11569 videoFormatProperties.resize( videoFormatPropertyCount ); 11570 } 11571 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11572 { 11573 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" ); 11574 } 11575 return videoFormatProperties; 11576 } 11577 11578 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR> getMemoryRequirements() const11579 VideoSessionKHR::getMemoryRequirements() const 11580 { 11581 VULKAN_HPP_ASSERT( 11582 getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR && 11583 "Function <vkGetVideoSessionMemoryRequirementsKHR> needs extension <VK_KHR_video_queue> enabled!" ); 11584 11585 std::vector<VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR> videoSessionMemoryRequirements; 11586 uint32_t videoSessionMemoryRequirementsCount; 11587 VULKAN_HPP_NAMESPACE::Result result; 11588 do 11589 { 11590 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11591 getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR( static_cast<VkDevice>( m_device ), 11592 static_cast<VkVideoSessionKHR>( m_videoSessionKHR ), 11593 &videoSessionMemoryRequirementsCount, 11594 nullptr ) ); 11595 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoSessionMemoryRequirementsCount ) 11596 { 11597 videoSessionMemoryRequirements.resize( videoSessionMemoryRequirementsCount ); 11598 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR( 11599 static_cast<VkDevice>( m_device ), 11600 static_cast<VkVideoSessionKHR>( m_videoSessionKHR ), 11601 &videoSessionMemoryRequirementsCount, 11602 reinterpret_cast<VkVideoGetMemoryPropertiesKHR *>( videoSessionMemoryRequirements.data() ) ) ); 11603 VULKAN_HPP_ASSERT( videoSessionMemoryRequirementsCount <= videoSessionMemoryRequirements.size() ); 11604 } 11605 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11606 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 11607 ( videoSessionMemoryRequirementsCount < videoSessionMemoryRequirements.size() ) ) 11608 { 11609 videoSessionMemoryRequirements.resize( videoSessionMemoryRequirementsCount ); 11610 } 11611 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11612 { 11613 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::getMemoryRequirements" ); 11614 } 11615 return videoSessionMemoryRequirements; 11616 } 11617 bindMemory(ArrayProxy<const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR> const & videoSessionBindMemories) const11618 VULKAN_HPP_INLINE void VideoSessionKHR::bindMemory( 11619 ArrayProxy<const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR> const & videoSessionBindMemories ) const 11620 { 11621 VULKAN_HPP_ASSERT( getDispatcher()->vkBindVideoSessionMemoryKHR && 11622 "Function <vkBindVideoSessionMemoryKHR> needs extension <VK_KHR_video_queue> enabled!" ); 11623 11624 VULKAN_HPP_NAMESPACE::Result result = 11625 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindVideoSessionMemoryKHR( 11626 static_cast<VkDevice>( m_device ), 11627 static_cast<VkVideoSessionKHR>( m_videoSessionKHR ), 11628 videoSessionBindMemories.size(), 11629 reinterpret_cast<const VkVideoBindMemoryKHR *>( videoSessionBindMemories.data() ) ) ); 11630 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11631 { 11632 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::bindMemory" ); 11633 } 11634 } 11635 update(const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo) const11636 VULKAN_HPP_INLINE void VideoSessionParametersKHR::update( 11637 const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo ) const 11638 { 11639 VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateVideoSessionParametersKHR && 11640 "Function <vkUpdateVideoSessionParametersKHR> needs extension <VK_KHR_video_queue> enabled!" ); 11641 11642 VULKAN_HPP_NAMESPACE::Result result = 11643 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkUpdateVideoSessionParametersKHR( 11644 static_cast<VkDevice>( m_device ), 11645 static_cast<VkVideoSessionParametersKHR>( m_videoSessionParametersKHR ), 11646 reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( &updateInfo ) ) ); 11647 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11648 { 11649 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionParametersKHR::update" ); 11650 } 11651 } 11652 beginVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo) const11653 VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( 11654 const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo ) const VULKAN_HPP_NOEXCEPT 11655 { 11656 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginVideoCodingKHR && 11657 "Function <vkCmdBeginVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!" ); 11658 11659 getDispatcher()->vkCmdBeginVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 11660 reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( &beginInfo ) ); 11661 } 11662 endVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo) const11663 VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( 11664 const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo ) const VULKAN_HPP_NOEXCEPT 11665 { 11666 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndVideoCodingKHR && 11667 "Function <vkCmdEndVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!" ); 11668 11669 getDispatcher()->vkCmdEndVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 11670 reinterpret_cast<const VkVideoEndCodingInfoKHR *>( &endCodingInfo ) ); 11671 } 11672 controlVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo) const11673 VULKAN_HPP_INLINE void CommandBuffer::controlVideoCodingKHR( 11674 const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo ) const VULKAN_HPP_NOEXCEPT 11675 { 11676 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdControlVideoCodingKHR && 11677 "Function <vkCmdControlVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!" ); 11678 11679 getDispatcher()->vkCmdControlVideoCodingKHR( 11680 static_cast<VkCommandBuffer>( m_commandBuffer ), 11681 reinterpret_cast<const VkVideoCodingControlInfoKHR *>( &codingControlInfo ) ); 11682 } 11683 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 11684 11685 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 11686 //=== VK_KHR_video_decode_queue === 11687 decodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & frameInfo) const11688 VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( 11689 const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & frameInfo ) const VULKAN_HPP_NOEXCEPT 11690 { 11691 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecodeVideoKHR && 11692 "Function <vkCmdDecodeVideoKHR> needs extension <VK_KHR_video_decode_queue> enabled!" ); 11693 11694 getDispatcher()->vkCmdDecodeVideoKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 11695 reinterpret_cast<const VkVideoDecodeInfoKHR *>( &frameInfo ) ); 11696 } 11697 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 11698 11699 //=== VK_EXT_transform_feedback === 11700 bindTransformFeedbackBuffersEXT(uint32_t firstBinding,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes) const11701 VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( 11702 uint32_t firstBinding, 11703 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 11704 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 11705 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 11706 { 11707 VULKAN_HPP_ASSERT( 11708 getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT && 11709 "Function <vkCmdBindTransformFeedbackBuffersEXT> needs extension <VK_EXT_transform_feedback> enabled!" ); 11710 11711 # ifdef VULKAN_HPP_NO_EXCEPTIONS 11712 VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); 11713 VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); 11714 # else 11715 if ( buffers.size() != offsets.size() ) 11716 { 11717 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 11718 "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" ); 11719 } 11720 if ( !sizes.empty() && buffers.size() != sizes.size() ) 11721 { 11722 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 11723 "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" ); 11724 } 11725 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 11726 11727 getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 11728 firstBinding, 11729 buffers.size(), 11730 reinterpret_cast<const VkBuffer *>( buffers.data() ), 11731 reinterpret_cast<const VkDeviceSize *>( offsets.data() ), 11732 reinterpret_cast<const VkDeviceSize *>( sizes.data() ) ); 11733 } 11734 beginTransformFeedbackEXT(uint32_t firstCounterBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets) const11735 VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( 11736 uint32_t firstCounterBuffer, 11737 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, 11738 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets ) const 11739 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 11740 { 11741 VULKAN_HPP_ASSERT( 11742 getDispatcher()->vkCmdBeginTransformFeedbackEXT && 11743 "Function <vkCmdBeginTransformFeedbackEXT> needs extension <VK_EXT_transform_feedback> enabled!" ); 11744 11745 # ifdef VULKAN_HPP_NO_EXCEPTIONS 11746 VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); 11747 # else 11748 if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) 11749 { 11750 throw LogicError( 11751 VULKAN_HPP_NAMESPACE_STRING 11752 "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); 11753 } 11754 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 11755 11756 getDispatcher()->vkCmdBeginTransformFeedbackEXT( 11757 static_cast<VkCommandBuffer>( m_commandBuffer ), 11758 firstCounterBuffer, 11759 counterBuffers.size(), 11760 reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), 11761 reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) ); 11762 } 11763 endTransformFeedbackEXT(uint32_t firstCounterBuffer,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets) const11764 VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( 11765 uint32_t firstCounterBuffer, 11766 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, 11767 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets ) const 11768 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 11769 { 11770 VULKAN_HPP_ASSERT( 11771 getDispatcher()->vkCmdEndTransformFeedbackEXT && 11772 "Function <vkCmdEndTransformFeedbackEXT> needs extension <VK_EXT_transform_feedback> enabled!" ); 11773 11774 # ifdef VULKAN_HPP_NO_EXCEPTIONS 11775 VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); 11776 # else 11777 if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) 11778 { 11779 throw LogicError( 11780 VULKAN_HPP_NAMESPACE_STRING 11781 "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); 11782 } 11783 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 11784 11785 getDispatcher()->vkCmdEndTransformFeedbackEXT( 11786 static_cast<VkCommandBuffer>( m_commandBuffer ), 11787 firstCounterBuffer, 11788 counterBuffers.size(), 11789 reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), 11790 reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) ); 11791 } 11792 beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index) const11793 VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 11794 uint32_t query, 11795 VULKAN_HPP_NAMESPACE::QueryControlFlags flags, 11796 uint32_t index ) const VULKAN_HPP_NOEXCEPT 11797 { 11798 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginQueryIndexedEXT && 11799 "Function <vkCmdBeginQueryIndexedEXT> needs extension <VK_EXT_transform_feedback> enabled!" ); 11800 11801 getDispatcher()->vkCmdBeginQueryIndexedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 11802 static_cast<VkQueryPool>( queryPool ), 11803 query, 11804 static_cast<VkQueryControlFlags>( flags ), 11805 index ); 11806 } 11807 endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index) const11808 VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 11809 uint32_t query, 11810 uint32_t index ) const VULKAN_HPP_NOEXCEPT 11811 { 11812 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndQueryIndexedEXT && 11813 "Function <vkCmdEndQueryIndexedEXT> needs extension <VK_EXT_transform_feedback> enabled!" ); 11814 11815 getDispatcher()->vkCmdEndQueryIndexedEXT( 11816 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, index ); 11817 } 11818 11819 VULKAN_HPP_INLINE void drawIndirectByteCountEXT(uint32_t instanceCount,uint32_t firstInstance,VULKAN_HPP_NAMESPACE::Buffer counterBuffer,VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const11820 CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, 11821 uint32_t firstInstance, 11822 VULKAN_HPP_NAMESPACE::Buffer counterBuffer, 11823 VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, 11824 uint32_t counterOffset, 11825 uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT 11826 { 11827 VULKAN_HPP_ASSERT( 11828 getDispatcher()->vkCmdDrawIndirectByteCountEXT && 11829 "Function <vkCmdDrawIndirectByteCountEXT> needs extension <VK_EXT_transform_feedback> enabled!" ); 11830 11831 getDispatcher()->vkCmdDrawIndirectByteCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 11832 instanceCount, 11833 firstInstance, 11834 static_cast<VkBuffer>( counterBuffer ), 11835 static_cast<VkDeviceSize>( counterBufferOffset ), 11836 counterOffset, 11837 vertexStride ); 11838 } 11839 11840 //=== VK_NVX_binary_import === 11841 cuLaunchKernelNVX(const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo) const11842 VULKAN_HPP_INLINE void CommandBuffer::cuLaunchKernelNVX( 11843 const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo ) const VULKAN_HPP_NOEXCEPT 11844 { 11845 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCuLaunchKernelNVX && 11846 "Function <vkCmdCuLaunchKernelNVX> needs extension <VK_NVX_binary_import> enabled!" ); 11847 11848 getDispatcher()->vkCmdCuLaunchKernelNVX( static_cast<VkCommandBuffer>( m_commandBuffer ), 11849 reinterpret_cast<const VkCuLaunchInfoNVX *>( &launchInfo ) ); 11850 } 11851 11852 //=== VK_NVX_image_view_handle === 11853 getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info) const11854 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( 11855 const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info ) const VULKAN_HPP_NOEXCEPT 11856 { 11857 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewHandleNVX && 11858 "Function <vkGetImageViewHandleNVX> needs extension <VK_NVX_image_view_handle> enabled!" ); 11859 11860 return getDispatcher()->vkGetImageViewHandleNVX( static_cast<VkDevice>( m_device ), 11861 reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) ); 11862 } 11863 11864 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX getAddressNVX() const11865 ImageView::getAddressNVX() const 11866 { 11867 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewAddressNVX && 11868 "Function <vkGetImageViewAddressNVX> needs extension <VK_NVX_image_view_handle> enabled!" ); 11869 11870 VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties; 11871 VULKAN_HPP_NAMESPACE::Result result = 11872 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageViewAddressNVX( 11873 static_cast<VkDevice>( m_device ), 11874 static_cast<VkImageView>( m_imageView ), 11875 reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) ) ); 11876 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11877 { 11878 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::ImageView::getAddressNVX" ); 11879 } 11880 return properties; 11881 } 11882 11883 //=== VK_AMD_draw_indirect_count === 11884 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) const11885 VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, 11886 VULKAN_HPP_NAMESPACE::DeviceSize offset, 11887 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 11888 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 11889 uint32_t maxDrawCount, 11890 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 11891 { 11892 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectCountAMD && 11893 "Function <vkCmdDrawIndirectCountAMD> needs extension <VK_AMD_draw_indirect_count> enabled!" ); 11894 11895 getDispatcher()->vkCmdDrawIndirectCountAMD( static_cast<VkCommandBuffer>( m_commandBuffer ), 11896 static_cast<VkBuffer>( buffer ), 11897 static_cast<VkDeviceSize>( offset ), 11898 static_cast<VkBuffer>( countBuffer ), 11899 static_cast<VkDeviceSize>( countBufferOffset ), 11900 maxDrawCount, 11901 stride ); 11902 } 11903 11904 VULKAN_HPP_INLINE void 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) const11905 CommandBuffer::drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, 11906 VULKAN_HPP_NAMESPACE::DeviceSize offset, 11907 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 11908 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 11909 uint32_t maxDrawCount, 11910 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 11911 { 11912 VULKAN_HPP_ASSERT( 11913 getDispatcher()->vkCmdDrawIndexedIndirectCountAMD && 11914 "Function <vkCmdDrawIndexedIndirectCountAMD> needs extension <VK_AMD_draw_indirect_count> enabled!" ); 11915 11916 getDispatcher()->vkCmdDrawIndexedIndirectCountAMD( static_cast<VkCommandBuffer>( m_commandBuffer ), 11917 static_cast<VkBuffer>( buffer ), 11918 static_cast<VkDeviceSize>( offset ), 11919 static_cast<VkBuffer>( countBuffer ), 11920 static_cast<VkDeviceSize>( countBufferOffset ), 11921 maxDrawCount, 11922 stride ); 11923 } 11924 11925 //=== VK_AMD_shader_info === 11926 11927 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> getShaderInfoAMD(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType) const11928 Pipeline::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, 11929 VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType ) const 11930 { 11931 VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderInfoAMD && 11932 "Function <vkGetShaderInfoAMD> needs extension <VK_AMD_shader_info> enabled!" ); 11933 11934 std::vector<uint8_t> info; 11935 size_t infoSize; 11936 VULKAN_HPP_NAMESPACE::Result result; 11937 do 11938 { 11939 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11940 getDispatcher()->vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ), 11941 static_cast<VkPipeline>( m_pipeline ), 11942 static_cast<VkShaderStageFlagBits>( shaderStage ), 11943 static_cast<VkShaderInfoTypeAMD>( infoType ), 11944 &infoSize, 11945 nullptr ) ); 11946 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && infoSize ) 11947 { 11948 info.resize( infoSize ); 11949 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11950 getDispatcher()->vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ), 11951 static_cast<VkPipeline>( m_pipeline ), 11952 static_cast<VkShaderStageFlagBits>( shaderStage ), 11953 static_cast<VkShaderInfoTypeAMD>( infoType ), 11954 &infoSize, 11955 reinterpret_cast<void *>( info.data() ) ) ); 11956 VULKAN_HPP_ASSERT( infoSize <= info.size() ); 11957 } 11958 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11959 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( infoSize < info.size() ) ) 11960 { 11961 info.resize( infoSize ); 11962 } 11963 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11964 { 11965 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getShaderInfoAMD" ); 11966 } 11967 return info; 11968 } 11969 11970 //=== VK_NV_external_memory_capabilities === 11971 11972 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV 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) const11973 PhysicalDevice::getExternalImageFormatPropertiesNV( 11974 VULKAN_HPP_NAMESPACE::Format format, 11975 VULKAN_HPP_NAMESPACE::ImageType type, 11976 VULKAN_HPP_NAMESPACE::ImageTiling tiling, 11977 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 11978 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, 11979 VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType ) const 11980 { 11981 VULKAN_HPP_ASSERT( 11982 getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV && 11983 "Function <vkGetPhysicalDeviceExternalImageFormatPropertiesNV> needs extension <VK_NV_external_memory_capabilities> enabled!" ); 11984 11985 VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties; 11986 VULKAN_HPP_NAMESPACE::Result result = 11987 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV( 11988 static_cast<VkPhysicalDevice>( m_physicalDevice ), 11989 static_cast<VkFormat>( format ), 11990 static_cast<VkImageType>( type ), 11991 static_cast<VkImageTiling>( tiling ), 11992 static_cast<VkImageUsageFlags>( usage ), 11993 static_cast<VkImageCreateFlags>( flags ), 11994 static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ), 11995 reinterpret_cast<VkExternalImageFormatPropertiesNV *>( &externalImageFormatProperties ) ) ); 11996 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11997 { 11998 throwResultException( result, 11999 VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" ); 12000 } 12001 return externalImageFormatProperties; 12002 } 12003 12004 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 12005 //=== VK_NV_external_memory_win32 === 12006 12007 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType) const12008 DeviceMemory::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const 12009 { 12010 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleNV && 12011 "Function <vkGetMemoryWin32HandleNV> needs extension <VK_NV_external_memory_win32> enabled!" ); 12012 12013 HANDLE handle; 12014 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12015 getDispatcher()->vkGetMemoryWin32HandleNV( static_cast<VkDevice>( m_device ), 12016 static_cast<VkDeviceMemory>( m_deviceMemory ), 12017 static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), 12018 &handle ) ); 12019 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12020 { 12021 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::getMemoryWin32HandleNV" ); 12022 } 12023 return handle; 12024 } 12025 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 12026 12027 //=== VK_KHR_get_physical_device_properties2 === 12028 12029 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR() const12030 PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT 12031 { 12032 VULKAN_HPP_ASSERT( 12033 getDispatcher()->vkGetPhysicalDeviceFeatures2KHR && 12034 "Function <vkGetPhysicalDeviceFeatures2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12035 12036 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; 12037 getDispatcher()->vkGetPhysicalDeviceFeatures2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12038 reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) ); 12039 return features; 12040 } 12041 12042 template <typename X, typename Y, typename... Z> 12043 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getFeatures2KHR() const12044 PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT 12045 { 12046 VULKAN_HPP_ASSERT( 12047 getDispatcher()->vkGetPhysicalDeviceFeatures2KHR && 12048 "Function <vkGetPhysicalDeviceFeatures2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12049 12050 StructureChain<X, Y, Z...> structureChain; 12051 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = 12052 structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>(); 12053 getDispatcher()->vkGetPhysicalDeviceFeatures2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12054 reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) ); 12055 return structureChain; 12056 } 12057 12058 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR() const12059 PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT 12060 { 12061 VULKAN_HPP_ASSERT( 12062 getDispatcher()->vkGetPhysicalDeviceProperties2KHR && 12063 "Function <vkGetPhysicalDeviceProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12064 12065 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; 12066 getDispatcher()->vkGetPhysicalDeviceProperties2KHR( 12067 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12068 reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) ); 12069 return properties; 12070 } 12071 12072 template <typename X, typename Y, typename... Z> 12073 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getProperties2KHR() const12074 PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT 12075 { 12076 VULKAN_HPP_ASSERT( 12077 getDispatcher()->vkGetPhysicalDeviceProperties2KHR && 12078 "Function <vkGetPhysicalDeviceProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12079 12080 StructureChain<X, Y, Z...> structureChain; 12081 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = 12082 structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>(); 12083 getDispatcher()->vkGetPhysicalDeviceProperties2KHR( 12084 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12085 reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) ); 12086 return structureChain; 12087 } 12088 12089 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format) const12090 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 12091 { 12092 VULKAN_HPP_ASSERT( 12093 getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR && 12094 "Function <vkGetPhysicalDeviceFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12095 12096 VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; 12097 getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR( 12098 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12099 static_cast<VkFormat>( format ), 12100 reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) ); 12101 return formatProperties; 12102 } 12103 12104 template <typename X, typename Y, typename... Z> 12105 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format) const12106 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 12107 { 12108 VULKAN_HPP_ASSERT( 12109 getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR && 12110 "Function <vkGetPhysicalDeviceFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12111 12112 StructureChain<X, Y, Z...> structureChain; 12113 VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = 12114 structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>(); 12115 getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR( 12116 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12117 static_cast<VkFormat>( format ), 12118 reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) ); 12119 return structureChain; 12120 } 12121 12122 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties2 getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo) const12123 PhysicalDevice::getImageFormatProperties2KHR( 12124 const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const 12125 { 12126 VULKAN_HPP_ASSERT( 12127 getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR && 12128 "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12129 12130 VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; 12131 VULKAN_HPP_NAMESPACE::Result result = 12132 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR( 12133 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12134 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), 12135 reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) ); 12136 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12137 { 12138 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); 12139 } 12140 return imageFormatProperties; 12141 } 12142 12143 template <typename X, typename Y, typename... Z> getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo) const12144 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> PhysicalDevice::getImageFormatProperties2KHR( 12145 const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const 12146 { 12147 StructureChain<X, Y, Z...> structureChain; 12148 VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = 12149 structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>(); 12150 VULKAN_HPP_NAMESPACE::Result result = 12151 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR( 12152 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12153 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), 12154 reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) ); 12155 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12156 { 12157 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); 12158 } 12159 return structureChain; 12160 } 12161 12162 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> getQueueFamilyProperties2KHR() const12163 PhysicalDevice::getQueueFamilyProperties2KHR() const VULKAN_HPP_NOEXCEPT 12164 { 12165 VULKAN_HPP_ASSERT( 12166 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR && 12167 "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12168 12169 uint32_t queueFamilyPropertyCount; 12170 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR( 12171 static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 12172 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount ); 12173 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR( 12174 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12175 &queueFamilyPropertyCount, 12176 reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) ); 12177 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 12178 return queueFamilyProperties; 12179 } 12180 12181 template <typename StructureChain> 12182 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> getQueueFamilyProperties2KHR() const12183 PhysicalDevice::getQueueFamilyProperties2KHR() const 12184 { 12185 VULKAN_HPP_ASSERT( 12186 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR && 12187 "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12188 12189 uint32_t queueFamilyPropertyCount; 12190 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR( 12191 static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 12192 std::vector<StructureChain> returnVector( queueFamilyPropertyCount ); 12193 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties( queueFamilyPropertyCount ); 12194 for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) 12195 { 12196 queueFamilyProperties[i].pNext = 12197 returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext; 12198 } 12199 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR( 12200 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12201 &queueFamilyPropertyCount, 12202 reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) ); 12203 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 12204 for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) 12205 { 12206 returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i]; 12207 } 12208 return returnVector; 12209 } 12210 12211 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR() const12212 PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT 12213 { 12214 VULKAN_HPP_ASSERT( 12215 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR && 12216 "Function <vkGetPhysicalDeviceMemoryProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12217 12218 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; 12219 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR( 12220 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12221 reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) ); 12222 return memoryProperties; 12223 } 12224 12225 template <typename X, typename Y, typename... Z> 12226 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getMemoryProperties2KHR() const12227 PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT 12228 { 12229 VULKAN_HPP_ASSERT( 12230 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR && 12231 "Function <vkGetPhysicalDeviceMemoryProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12232 12233 StructureChain<X, Y, Z...> structureChain; 12234 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = 12235 structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>(); 12236 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR( 12237 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12238 reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) ); 12239 return structureChain; 12240 } 12241 12242 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo) const12243 PhysicalDevice::getSparseImageFormatProperties2KHR( 12244 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const VULKAN_HPP_NOEXCEPT 12245 { 12246 VULKAN_HPP_ASSERT( 12247 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR && 12248 "Function <vkGetPhysicalDeviceSparseImageFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!" ); 12249 12250 uint32_t propertyCount; 12251 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR( 12252 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12253 reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), 12254 &propertyCount, 12255 nullptr ); 12256 std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> properties( propertyCount ); 12257 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR( 12258 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12259 reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), 12260 &propertyCount, 12261 reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) ); 12262 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 12263 return properties; 12264 } 12265 12266 //=== VK_KHR_device_group === 12267 12268 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex) const12269 Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, 12270 uint32_t localDeviceIndex, 12271 uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT 12272 { 12273 VULKAN_HPP_ASSERT( 12274 getDispatcher()->vkGetDeviceGroupPeerMemoryFeaturesKHR && 12275 "Function <vkGetDeviceGroupPeerMemoryFeaturesKHR> needs extension <VK_KHR_device_group> enabled!" ); 12276 12277 VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; 12278 getDispatcher()->vkGetDeviceGroupPeerMemoryFeaturesKHR( 12279 static_cast<VkDevice>( m_device ), 12280 heapIndex, 12281 localDeviceIndex, 12282 remoteDeviceIndex, 12283 reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) ); 12284 return peerMemoryFeatures; 12285 } 12286 setDeviceMaskKHR(uint32_t deviceMask) const12287 VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT 12288 { 12289 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDeviceMaskKHR && 12290 "Function <vkCmdSetDeviceMaskKHR> needs extension <VK_KHR_device_group> enabled!" ); 12291 12292 getDispatcher()->vkCmdSetDeviceMaskKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), deviceMask ); 12293 } 12294 dispatchBaseKHR(uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const12295 VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, 12296 uint32_t baseGroupY, 12297 uint32_t baseGroupZ, 12298 uint32_t groupCountX, 12299 uint32_t groupCountY, 12300 uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT 12301 { 12302 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchBaseKHR && 12303 "Function <vkCmdDispatchBaseKHR> needs extension <VK_KHR_device_group> enabled!" ); 12304 12305 getDispatcher()->vkCmdDispatchBaseKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 12306 baseGroupX, 12307 baseGroupY, 12308 baseGroupZ, 12309 groupCountX, 12310 groupCountY, 12311 groupCountZ ); 12312 } 12313 12314 //=== VK_KHR_maintenance1 === 12315 12316 VULKAN_HPP_INLINE void trimKHR(VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags) const12317 CommandPool::trimKHR( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT 12318 { 12319 VULKAN_HPP_ASSERT( getDispatcher()->vkTrimCommandPoolKHR && 12320 "Function <vkTrimCommandPoolKHR> needs extension <VK_KHR_maintenance1> enabled!" ); 12321 12322 getDispatcher()->vkTrimCommandPoolKHR( static_cast<VkDevice>( m_device ), 12323 static_cast<VkCommandPool>( m_commandPool ), 12324 static_cast<VkCommandPoolTrimFlags>( flags ) ); 12325 } 12326 12327 //=== VK_KHR_device_group_creation === 12328 12329 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> enumeratePhysicalDeviceGroupsKHR() const12330 Instance::enumeratePhysicalDeviceGroupsKHR() const 12331 { 12332 VULKAN_HPP_ASSERT( 12333 getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR && 12334 "Function <vkEnumeratePhysicalDeviceGroupsKHR> needs extension <VK_KHR_device_group_creation> enabled!" ); 12335 12336 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> physicalDeviceGroupProperties; 12337 uint32_t physicalDeviceGroupCount; 12338 VULKAN_HPP_NAMESPACE::Result result; 12339 do 12340 { 12341 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR( 12342 static_cast<VkInstance>( m_instance ), &physicalDeviceGroupCount, nullptr ) ); 12343 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount ) 12344 { 12345 physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); 12346 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR( 12347 static_cast<VkInstance>( m_instance ), 12348 &physicalDeviceGroupCount, 12349 reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) ); 12350 VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); 12351 } 12352 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 12353 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 12354 ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) 12355 { 12356 physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); 12357 } 12358 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12359 { 12360 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" ); 12361 } 12362 return physicalDeviceGroupProperties; 12363 } 12364 12365 //=== VK_KHR_external_memory_capabilities === 12366 12367 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo) const12368 PhysicalDevice::getExternalBufferPropertiesKHR( 12369 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT 12370 { 12371 VULKAN_HPP_ASSERT( 12372 getDispatcher()->vkGetPhysicalDeviceExternalBufferPropertiesKHR && 12373 "Function <vkGetPhysicalDeviceExternalBufferPropertiesKHR> needs extension <VK_KHR_external_memory_capabilities> enabled!" ); 12374 12375 VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; 12376 getDispatcher()->vkGetPhysicalDeviceExternalBufferPropertiesKHR( 12377 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12378 reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), 12379 reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) ); 12380 return externalBufferProperties; 12381 } 12382 12383 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 12384 //=== VK_KHR_external_memory_win32 === 12385 getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo) const12386 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getMemoryWin32HandleKHR( 12387 const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const 12388 { 12389 VULKAN_HPP_ASSERT( 12390 getDispatcher()->vkGetMemoryWin32HandleKHR && 12391 "Function <vkGetMemoryWin32HandleKHR> needs extension <VK_KHR_external_memory_win32> enabled!" ); 12392 12393 HANDLE handle; 12394 VULKAN_HPP_NAMESPACE::Result result = 12395 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryWin32HandleKHR( 12396 static_cast<VkDevice>( m_device ), 12397 reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), 12398 &handle ) ); 12399 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12400 { 12401 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" ); 12402 } 12403 return handle; 12404 } 12405 12406 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle) const12407 Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, 12408 HANDLE handle ) const 12409 { 12410 VULKAN_HPP_ASSERT( 12411 getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR && 12412 "Function <vkGetMemoryWin32HandlePropertiesKHR> needs extension <VK_KHR_external_memory_win32> enabled!" ); 12413 12414 VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties; 12415 VULKAN_HPP_NAMESPACE::Result result = 12416 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR( 12417 static_cast<VkDevice>( m_device ), 12418 static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), 12419 handle, 12420 reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) ) ); 12421 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12422 { 12423 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" ); 12424 } 12425 return memoryWin32HandleProperties; 12426 } 12427 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 12428 12429 //=== VK_KHR_external_memory_fd === 12430 12431 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo) const12432 Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo ) const 12433 { 12434 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdKHR && 12435 "Function <vkGetMemoryFdKHR> needs extension <VK_KHR_external_memory_fd> enabled!" ); 12436 12437 int fd; 12438 VULKAN_HPP_NAMESPACE::Result result = 12439 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryFdKHR( 12440 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) ); 12441 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12442 { 12443 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" ); 12444 } 12445 return fd; 12446 } 12447 12448 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd) const12449 Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, 12450 int fd ) const 12451 { 12452 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdPropertiesKHR && 12453 "Function <vkGetMemoryFdPropertiesKHR> needs extension <VK_KHR_external_memory_fd> enabled!" ); 12454 12455 VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties; 12456 VULKAN_HPP_NAMESPACE::Result result = 12457 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryFdPropertiesKHR( 12458 static_cast<VkDevice>( m_device ), 12459 static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), 12460 fd, 12461 reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) ) ); 12462 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12463 { 12464 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" ); 12465 } 12466 return memoryFdProperties; 12467 } 12468 12469 //=== VK_KHR_external_semaphore_capabilities === 12470 12471 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo) const12472 PhysicalDevice::getExternalSemaphorePropertiesKHR( 12473 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const 12474 VULKAN_HPP_NOEXCEPT 12475 { 12476 VULKAN_HPP_ASSERT( 12477 getDispatcher()->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR && 12478 "Function <vkGetPhysicalDeviceExternalSemaphorePropertiesKHR> needs extension <VK_KHR_external_semaphore_capabilities> enabled!" ); 12479 12480 VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; 12481 getDispatcher()->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( 12482 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12483 reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), 12484 reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) ); 12485 return externalSemaphoreProperties; 12486 } 12487 12488 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 12489 //=== VK_KHR_external_semaphore_win32 === 12490 importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo) const12491 VULKAN_HPP_INLINE void Device::importSemaphoreWin32HandleKHR( 12492 const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const 12493 { 12494 VULKAN_HPP_ASSERT( 12495 getDispatcher()->vkImportSemaphoreWin32HandleKHR && 12496 "Function <vkImportSemaphoreWin32HandleKHR> needs extension <VK_KHR_external_semaphore_win32> enabled!" ); 12497 12498 VULKAN_HPP_NAMESPACE::Result result = 12499 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreWin32HandleKHR( 12500 static_cast<VkDevice>( m_device ), 12501 reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) ); 12502 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12503 { 12504 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" ); 12505 } 12506 } 12507 getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo) const12508 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getSemaphoreWin32HandleKHR( 12509 const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const 12510 { 12511 VULKAN_HPP_ASSERT( 12512 getDispatcher()->vkGetSemaphoreWin32HandleKHR && 12513 "Function <vkGetSemaphoreWin32HandleKHR> needs extension <VK_KHR_external_semaphore_win32> enabled!" ); 12514 12515 HANDLE handle; 12516 VULKAN_HPP_NAMESPACE::Result result = 12517 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreWin32HandleKHR( 12518 static_cast<VkDevice>( m_device ), 12519 reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), 12520 &handle ) ); 12521 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12522 { 12523 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" ); 12524 } 12525 return handle; 12526 } 12527 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 12528 12529 //=== VK_KHR_external_semaphore_fd === 12530 12531 VULKAN_HPP_INLINE void importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo) const12532 Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const 12533 { 12534 VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreFdKHR && 12535 "Function <vkImportSemaphoreFdKHR> needs extension <VK_KHR_external_semaphore_fd> enabled!" ); 12536 12537 VULKAN_HPP_NAMESPACE::Result result = 12538 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreFdKHR( 12539 static_cast<VkDevice>( m_device ), 12540 reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) ); 12541 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12542 { 12543 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" ); 12544 } 12545 } 12546 12547 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo) const12548 Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo ) const 12549 { 12550 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreFdKHR && 12551 "Function <vkGetSemaphoreFdKHR> needs extension <VK_KHR_external_semaphore_fd> enabled!" ); 12552 12553 int fd; 12554 VULKAN_HPP_NAMESPACE::Result result = 12555 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreFdKHR( 12556 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) ); 12557 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12558 { 12559 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" ); 12560 } 12561 return fd; 12562 } 12563 12564 //=== VK_KHR_push_descriptor === 12565 pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites) const12566 VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( 12567 VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 12568 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 12569 uint32_t set, 12570 ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites ) const VULKAN_HPP_NOEXCEPT 12571 { 12572 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetKHR && 12573 "Function <vkCmdPushDescriptorSetKHR> needs extension <VK_KHR_push_descriptor> enabled!" ); 12574 12575 getDispatcher()->vkCmdPushDescriptorSetKHR( 12576 static_cast<VkCommandBuffer>( m_commandBuffer ), 12577 static_cast<VkPipelineBindPoint>( pipelineBindPoint ), 12578 static_cast<VkPipelineLayout>( layout ), 12579 set, 12580 descriptorWrites.size(), 12581 reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ) ); 12582 } 12583 pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData) const12584 VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( 12585 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 12586 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 12587 uint32_t set, 12588 const void * pData ) const VULKAN_HPP_NOEXCEPT 12589 { 12590 VULKAN_HPP_ASSERT( 12591 getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR && 12592 "Function <vkCmdPushDescriptorSetWithTemplateKHR> needs extension <VK_KHR_push_descriptor> enabled!" ); 12593 12594 getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR( 12595 static_cast<VkCommandBuffer>( m_commandBuffer ), 12596 static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), 12597 static_cast<VkPipelineLayout>( layout ), 12598 set, 12599 pData ); 12600 } 12601 12602 //=== VK_EXT_conditional_rendering === 12603 beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin) const12604 VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( 12605 const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin ) const 12606 VULKAN_HPP_NOEXCEPT 12607 { 12608 VULKAN_HPP_ASSERT( 12609 getDispatcher()->vkCmdBeginConditionalRenderingEXT && 12610 "Function <vkCmdBeginConditionalRenderingEXT> needs extension <VK_EXT_conditional_rendering> enabled!" ); 12611 12612 getDispatcher()->vkCmdBeginConditionalRenderingEXT( 12613 static_cast<VkCommandBuffer>( m_commandBuffer ), 12614 reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) ); 12615 } 12616 endConditionalRenderingEXT() const12617 VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT 12618 { 12619 VULKAN_HPP_ASSERT( 12620 getDispatcher()->vkCmdEndConditionalRenderingEXT && 12621 "Function <vkCmdEndConditionalRenderingEXT> needs extension <VK_EXT_conditional_rendering> enabled!" ); 12622 12623 getDispatcher()->vkCmdEndConditionalRenderingEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 12624 } 12625 12626 //=== VK_KHR_descriptor_update_template === 12627 destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12628 VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( 12629 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 12630 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NOEXCEPT 12631 { 12632 VULKAN_HPP_ASSERT( 12633 getDispatcher()->vkDestroyDescriptorUpdateTemplateKHR && 12634 "Function <vkDestroyDescriptorUpdateTemplateKHR> needs extension <VK_KHR_descriptor_update_template> enabled!" ); 12635 12636 getDispatcher()->vkDestroyDescriptorUpdateTemplateKHR( 12637 static_cast<VkDevice>( m_device ), 12638 static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), 12639 reinterpret_cast<const VkAllocationCallbacks *>( 12640 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ); 12641 } 12642 12643 VULKAN_HPP_INLINE void updateWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData) const12644 DescriptorSet::updateWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 12645 const void * pData ) const VULKAN_HPP_NOEXCEPT 12646 { 12647 VULKAN_HPP_ASSERT( 12648 getDispatcher()->vkUpdateDescriptorSetWithTemplateKHR && 12649 "Function <vkUpdateDescriptorSetWithTemplateKHR> needs extension <VK_KHR_descriptor_update_template> enabled!" ); 12650 12651 getDispatcher()->vkUpdateDescriptorSetWithTemplateKHR( 12652 static_cast<VkDevice>( m_device ), 12653 static_cast<VkDescriptorSet>( m_descriptorSet ), 12654 static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), 12655 pData ); 12656 } 12657 12658 //=== VK_NV_clip_space_w_scaling === 12659 setViewportWScalingNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings) const12660 VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( 12661 uint32_t firstViewport, 12662 ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings ) const VULKAN_HPP_NOEXCEPT 12663 { 12664 VULKAN_HPP_ASSERT( 12665 getDispatcher()->vkCmdSetViewportWScalingNV && 12666 "Function <vkCmdSetViewportWScalingNV> needs extension <VK_NV_clip_space_w_scaling> enabled!" ); 12667 12668 getDispatcher()->vkCmdSetViewportWScalingNV( 12669 static_cast<VkCommandBuffer>( m_commandBuffer ), 12670 firstViewport, 12671 viewportWScalings.size(), 12672 reinterpret_cast<const VkViewportWScalingNV *>( viewportWScalings.data() ) ); 12673 } 12674 12675 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) 12676 //=== VK_EXT_acquire_xlib_display === 12677 acquireXlibDisplayEXT(Display & dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display) const12678 VULKAN_HPP_INLINE void PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, 12679 VULKAN_HPP_NAMESPACE::DisplayKHR display ) const 12680 { 12681 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireXlibDisplayEXT && 12682 "Function <vkAcquireXlibDisplayEXT> needs extension <VK_EXT_acquire_xlib_display> enabled!" ); 12683 12684 VULKAN_HPP_NAMESPACE::Result result = 12685 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireXlibDisplayEXT( 12686 static_cast<VkPhysicalDevice>( m_physicalDevice ), &dpy, static_cast<VkDisplayKHR>( display ) ) ); 12687 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12688 { 12689 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" ); 12690 } 12691 } 12692 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 12693 12694 //=== VK_EXT_display_surface_counter === 12695 12696 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const12697 PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 12698 { 12699 VULKAN_HPP_ASSERT( 12700 getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT && 12701 "Function <vkGetPhysicalDeviceSurfaceCapabilities2EXT> needs extension <VK_EXT_display_surface_counter> enabled!" ); 12702 12703 VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities; 12704 VULKAN_HPP_NAMESPACE::Result result = 12705 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT( 12706 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12707 static_cast<VkSurfaceKHR>( surface ), 12708 reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) ) ); 12709 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12710 { 12711 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" ); 12712 } 12713 return surfaceCapabilities; 12714 } 12715 12716 //=== VK_EXT_display_control === 12717 12718 VULKAN_HPP_INLINE void displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo) const12719 Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, 12720 const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo ) const 12721 { 12722 VULKAN_HPP_ASSERT( getDispatcher()->vkDisplayPowerControlEXT && 12723 "Function <vkDisplayPowerControlEXT> needs extension <VK_EXT_display_control> enabled!" ); 12724 12725 VULKAN_HPP_NAMESPACE::Result result = 12726 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDisplayPowerControlEXT( 12727 static_cast<VkDevice>( m_device ), 12728 static_cast<VkDisplayKHR>( display ), 12729 reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) ); 12730 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12731 { 12732 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" ); 12733 } 12734 } 12735 12736 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t getCounterEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter) const12737 SwapchainKHR::getCounterEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter ) const 12738 { 12739 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainCounterEXT && 12740 "Function <vkGetSwapchainCounterEXT> needs extension <VK_EXT_display_control> enabled!" ); 12741 12742 uint64_t counterValue; 12743 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12744 getDispatcher()->vkGetSwapchainCounterEXT( static_cast<VkDevice>( m_device ), 12745 static_cast<VkSwapchainKHR>( m_swapchainKHR ), 12746 static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), 12747 &counterValue ) ); 12748 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12749 { 12750 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getCounterEXT" ); 12751 } 12752 return counterValue; 12753 } 12754 12755 //=== VK_GOOGLE_display_timing === 12756 12757 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE getRefreshCycleDurationGOOGLE() const12758 SwapchainKHR::getRefreshCycleDurationGOOGLE() const 12759 { 12760 VULKAN_HPP_ASSERT( 12761 getDispatcher()->vkGetRefreshCycleDurationGOOGLE && 12762 "Function <vkGetRefreshCycleDurationGOOGLE> needs extension <VK_GOOGLE_display_timing> enabled!" ); 12763 12764 VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties; 12765 VULKAN_HPP_NAMESPACE::Result result = 12766 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRefreshCycleDurationGOOGLE( 12767 static_cast<VkDevice>( m_device ), 12768 static_cast<VkSwapchainKHR>( m_swapchainKHR ), 12769 reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) ) ); 12770 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12771 { 12772 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getRefreshCycleDurationGOOGLE" ); 12773 } 12774 return displayTimingProperties; 12775 } 12776 12777 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> getPastPresentationTimingGOOGLE() const12778 SwapchainKHR::getPastPresentationTimingGOOGLE() const 12779 { 12780 VULKAN_HPP_ASSERT( 12781 getDispatcher()->vkGetPastPresentationTimingGOOGLE && 12782 "Function <vkGetPastPresentationTimingGOOGLE> needs extension <VK_GOOGLE_display_timing> enabled!" ); 12783 12784 std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> presentationTimings; 12785 uint32_t presentationTimingCount; 12786 VULKAN_HPP_NAMESPACE::Result result; 12787 do 12788 { 12789 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12790 getDispatcher()->vkGetPastPresentationTimingGOOGLE( static_cast<VkDevice>( m_device ), 12791 static_cast<VkSwapchainKHR>( m_swapchainKHR ), 12792 &presentationTimingCount, 12793 nullptr ) ); 12794 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentationTimingCount ) 12795 { 12796 presentationTimings.resize( presentationTimingCount ); 12797 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPastPresentationTimingGOOGLE( 12798 static_cast<VkDevice>( m_device ), 12799 static_cast<VkSwapchainKHR>( m_swapchainKHR ), 12800 &presentationTimingCount, 12801 reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) ); 12802 VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); 12803 } 12804 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 12805 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 12806 ( presentationTimingCount < presentationTimings.size() ) ) 12807 { 12808 presentationTimings.resize( presentationTimingCount ); 12809 } 12810 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12811 { 12812 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getPastPresentationTimingGOOGLE" ); 12813 } 12814 return presentationTimings; 12815 } 12816 12817 //=== VK_EXT_discard_rectangles === 12818 setDiscardRectangleEXT(uint32_t firstDiscardRectangle,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles) const12819 VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( 12820 uint32_t firstDiscardRectangle, 12821 ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles ) const VULKAN_HPP_NOEXCEPT 12822 { 12823 VULKAN_HPP_ASSERT( 12824 getDispatcher()->vkCmdSetDiscardRectangleEXT && 12825 "Function <vkCmdSetDiscardRectangleEXT> needs extension <VK_EXT_discard_rectangles> enabled!" ); 12826 12827 getDispatcher()->vkCmdSetDiscardRectangleEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 12828 firstDiscardRectangle, 12829 discardRectangles.size(), 12830 reinterpret_cast<const VkRect2D *>( discardRectangles.data() ) ); 12831 } 12832 12833 //=== VK_EXT_hdr_metadata === 12834 12835 VULKAN_HPP_INLINE void setHdrMetadataEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains,ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata) const12836 Device::setHdrMetadataEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains, 12837 ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata ) const 12838 VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 12839 { 12840 VULKAN_HPP_ASSERT( getDispatcher()->vkSetHdrMetadataEXT && 12841 "Function <vkSetHdrMetadataEXT> needs extension <VK_EXT_hdr_metadata> enabled!" ); 12842 12843 # ifdef VULKAN_HPP_NO_EXCEPTIONS 12844 VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() ); 12845 # else 12846 if ( swapchains.size() != metadata.size() ) 12847 { 12848 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 12849 "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" ); 12850 } 12851 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 12852 12853 getDispatcher()->vkSetHdrMetadataEXT( static_cast<VkDevice>( m_device ), 12854 swapchains.size(), 12855 reinterpret_cast<const VkSwapchainKHR *>( swapchains.data() ), 12856 reinterpret_cast<const VkHdrMetadataEXT *>( metadata.data() ) ); 12857 } 12858 12859 //=== VK_KHR_create_renderpass2 === 12860 beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo) const12861 VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( 12862 const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 12863 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT 12864 { 12865 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderPass2KHR && 12866 "Function <vkCmdBeginRenderPass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!" ); 12867 12868 getDispatcher()->vkCmdBeginRenderPass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 12869 reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), 12870 reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) ); 12871 } 12872 nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo) const12873 VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( 12874 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo, 12875 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT 12876 { 12877 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdNextSubpass2KHR && 12878 "Function <vkCmdNextSubpass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!" ); 12879 12880 getDispatcher()->vkCmdNextSubpass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 12881 reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), 12882 reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) ); 12883 } 12884 endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo) const12885 VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( 12886 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT 12887 { 12888 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderPass2KHR && 12889 "Function <vkCmdEndRenderPass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!" ); 12890 12891 getDispatcher()->vkCmdEndRenderPass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 12892 reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) ); 12893 } 12894 12895 //=== VK_KHR_shared_presentable_image === 12896 getStatus() const12897 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::getStatus() const 12898 { 12899 VULKAN_HPP_ASSERT( 12900 getDispatcher()->vkGetSwapchainStatusKHR && 12901 "Function <vkGetSwapchainStatusKHR> needs extension <VK_KHR_shared_presentable_image> enabled!" ); 12902 12903 VULKAN_HPP_NAMESPACE::Result result = 12904 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSwapchainStatusKHR( 12905 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchainKHR ) ) ); 12906 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 12907 ( result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR ) ) 12908 { 12909 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getStatus" ); 12910 } 12911 return result; 12912 } 12913 12914 //=== VK_KHR_external_fence_capabilities === 12915 12916 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo) const12917 PhysicalDevice::getExternalFencePropertiesKHR( 12918 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT 12919 { 12920 VULKAN_HPP_ASSERT( 12921 getDispatcher()->vkGetPhysicalDeviceExternalFencePropertiesKHR && 12922 "Function <vkGetPhysicalDeviceExternalFencePropertiesKHR> needs extension <VK_KHR_external_fence_capabilities> enabled!" ); 12923 12924 VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; 12925 getDispatcher()->vkGetPhysicalDeviceExternalFencePropertiesKHR( 12926 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12927 reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), 12928 reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) ); 12929 return externalFenceProperties; 12930 } 12931 12932 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 12933 //=== VK_KHR_external_fence_win32 === 12934 importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo) const12935 VULKAN_HPP_INLINE void Device::importFenceWin32HandleKHR( 12936 const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const 12937 { 12938 VULKAN_HPP_ASSERT( 12939 getDispatcher()->vkImportFenceWin32HandleKHR && 12940 "Function <vkImportFenceWin32HandleKHR> needs extension <VK_KHR_external_fence_win32> enabled!" ); 12941 12942 VULKAN_HPP_NAMESPACE::Result result = 12943 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportFenceWin32HandleKHR( 12944 static_cast<VkDevice>( m_device ), 12945 reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) ); 12946 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12947 { 12948 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" ); 12949 } 12950 } 12951 getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo) const12952 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE Device::getFenceWin32HandleKHR( 12953 const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const 12954 { 12955 VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceWin32HandleKHR && 12956 "Function <vkGetFenceWin32HandleKHR> needs extension <VK_KHR_external_fence_win32> enabled!" ); 12957 12958 HANDLE handle; 12959 VULKAN_HPP_NAMESPACE::Result result = 12960 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetFenceWin32HandleKHR( 12961 static_cast<VkDevice>( m_device ), 12962 reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), 12963 &handle ) ); 12964 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12965 { 12966 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" ); 12967 } 12968 return handle; 12969 } 12970 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 12971 12972 //=== VK_KHR_external_fence_fd === 12973 12974 VULKAN_HPP_INLINE void importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo) const12975 Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo ) const 12976 { 12977 VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceFdKHR && 12978 "Function <vkImportFenceFdKHR> needs extension <VK_KHR_external_fence_fd> enabled!" ); 12979 12980 VULKAN_HPP_NAMESPACE::Result result = 12981 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportFenceFdKHR( 12982 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) ); 12983 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12984 { 12985 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" ); 12986 } 12987 } 12988 12989 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo) const12990 Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo ) const 12991 { 12992 VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceFdKHR && 12993 "Function <vkGetFenceFdKHR> needs extension <VK_KHR_external_fence_fd> enabled!" ); 12994 12995 int fd; 12996 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetFenceFdKHR( 12997 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) ); 12998 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12999 { 13000 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" ); 13001 } 13002 return fd; 13003 } 13004 13005 //=== VK_KHR_performance_query === 13006 13007 VULKAN_HPP_NODISCARD 13008 VULKAN_HPP_INLINE std::pair<std::vector<PerformanceCounterKHR>, std::vector<PerformanceCounterDescriptionKHR>> enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex) const13009 PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const 13010 { 13011 VULKAN_HPP_ASSERT( 13012 getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR && 13013 "Function <vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR> needs extension <VK_KHR_performance_query> enabled!" ); 13014 13015 std::pair<std::vector<PerformanceCounterKHR>, std::vector<PerformanceCounterDescriptionKHR>> data; 13016 std::vector<PerformanceCounterKHR> & counters = data.first; 13017 std::vector<PerformanceCounterDescriptionKHR> & counterDescriptions = data.second; 13018 uint32_t counterCount; 13019 VULKAN_HPP_NAMESPACE::Result result; 13020 do 13021 { 13022 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13023 getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( 13024 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &counterCount, nullptr, nullptr ) ); 13025 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && counterCount ) 13026 { 13027 counters.resize( counterCount ); 13028 counterDescriptions.resize( counterCount ); 13029 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13030 getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( 13031 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13032 queueFamilyIndex, 13033 &counterCount, 13034 reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ), 13035 reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) ); 13036 VULKAN_HPP_ASSERT( counterCount <= counters.size() ); 13037 } 13038 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 13039 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( counterCount < counters.size() ) ) 13040 { 13041 counters.resize( counterCount ); 13042 counterDescriptions.resize( counterCount ); 13043 } 13044 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13045 { 13046 throwResultException( 13047 result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); 13048 } 13049 return data; 13050 } 13051 getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo) const13052 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( 13053 const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo ) const 13054 VULKAN_HPP_NOEXCEPT 13055 { 13056 VULKAN_HPP_ASSERT( 13057 getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR && 13058 "Function <vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR> needs extension <VK_KHR_performance_query> enabled!" ); 13059 13060 uint32_t numPasses; 13061 getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( 13062 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13063 reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( &performanceQueryCreateInfo ), 13064 &numPasses ); 13065 return numPasses; 13066 } 13067 13068 VULKAN_HPP_INLINE void acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info) const13069 Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info ) const 13070 { 13071 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireProfilingLockKHR && 13072 "Function <vkAcquireProfilingLockKHR> needs extension <VK_KHR_performance_query> enabled!" ); 13073 13074 VULKAN_HPP_NAMESPACE::Result result = 13075 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireProfilingLockKHR( 13076 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) ); 13077 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13078 { 13079 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" ); 13080 } 13081 } 13082 releaseProfilingLockKHR() const13083 VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT 13084 { 13085 VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseProfilingLockKHR && 13086 "Function <vkReleaseProfilingLockKHR> needs extension <VK_KHR_performance_query> enabled!" ); 13087 13088 getDispatcher()->vkReleaseProfilingLockKHR( static_cast<VkDevice>( m_device ) ); 13089 } 13090 13091 //=== VK_KHR_get_surface_capabilities2 === 13092 13093 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const13094 PhysicalDevice::getSurfaceCapabilities2KHR( 13095 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 13096 { 13097 VULKAN_HPP_ASSERT( 13098 getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR && 13099 "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> needs extension <VK_KHR_get_surface_capabilities2> enabled!" ); 13100 13101 VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities; 13102 VULKAN_HPP_NAMESPACE::Result result = 13103 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( 13104 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13105 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 13106 reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) ); 13107 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13108 { 13109 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); 13110 } 13111 return surfaceCapabilities; 13112 } 13113 13114 template <typename X, typename Y, typename... Z> getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const13115 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> PhysicalDevice::getSurfaceCapabilities2KHR( 13116 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 13117 { 13118 StructureChain<X, Y, Z...> structureChain; 13119 VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = 13120 structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>(); 13121 VULKAN_HPP_NAMESPACE::Result result = 13122 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( 13123 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13124 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 13125 reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) ); 13126 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13127 { 13128 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); 13129 } 13130 return structureChain; 13131 } 13132 13133 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const13134 PhysicalDevice::getSurfaceFormats2KHR( 13135 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 13136 { 13137 VULKAN_HPP_ASSERT( 13138 getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR && 13139 "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> needs extension <VK_KHR_get_surface_capabilities2> enabled!" ); 13140 13141 std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats; 13142 uint32_t surfaceFormatCount; 13143 VULKAN_HPP_NAMESPACE::Result result; 13144 do 13145 { 13146 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( 13147 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13148 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 13149 &surfaceFormatCount, 13150 nullptr ) ); 13151 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount ) 13152 { 13153 surfaceFormats.resize( surfaceFormatCount ); 13154 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( 13155 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13156 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 13157 &surfaceFormatCount, 13158 reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) ); 13159 VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); 13160 } 13161 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 13162 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) 13163 { 13164 surfaceFormats.resize( surfaceFormatCount ); 13165 } 13166 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13167 { 13168 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); 13169 } 13170 return surfaceFormats; 13171 } 13172 13173 //=== VK_KHR_get_display_properties2 === 13174 13175 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> getDisplayProperties2KHR() const13176 PhysicalDevice::getDisplayProperties2KHR() const 13177 { 13178 VULKAN_HPP_ASSERT( 13179 getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR && 13180 "Function <vkGetPhysicalDeviceDisplayProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!" ); 13181 13182 std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> properties; 13183 uint32_t propertyCount; 13184 VULKAN_HPP_NAMESPACE::Result result; 13185 do 13186 { 13187 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR( 13188 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 13189 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 13190 { 13191 properties.resize( propertyCount ); 13192 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR( 13193 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13194 &propertyCount, 13195 reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) ); 13196 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 13197 } 13198 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 13199 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 13200 { 13201 properties.resize( propertyCount ); 13202 } 13203 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13204 { 13205 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" ); 13206 } 13207 return properties; 13208 } 13209 13210 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> getDisplayPlaneProperties2KHR() const13211 PhysicalDevice::getDisplayPlaneProperties2KHR() const 13212 { 13213 VULKAN_HPP_ASSERT( 13214 getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR && 13215 "Function <vkGetPhysicalDeviceDisplayPlaneProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!" ); 13216 13217 std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> properties; 13218 uint32_t propertyCount; 13219 VULKAN_HPP_NAMESPACE::Result result; 13220 do 13221 { 13222 result = 13223 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR( 13224 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 13225 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 13226 { 13227 properties.resize( propertyCount ); 13228 result = 13229 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR( 13230 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13231 &propertyCount, 13232 reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) ); 13233 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 13234 } 13235 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 13236 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 13237 { 13238 properties.resize( propertyCount ); 13239 } 13240 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13241 { 13242 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" ); 13243 } 13244 return properties; 13245 } 13246 13247 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> getModeProperties2() const13248 DisplayKHR::getModeProperties2() const 13249 { 13250 VULKAN_HPP_ASSERT( 13251 getDispatcher()->vkGetDisplayModeProperties2KHR && 13252 "Function <vkGetDisplayModeProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!" ); 13253 13254 std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> properties; 13255 uint32_t propertyCount; 13256 VULKAN_HPP_NAMESPACE::Result result; 13257 do 13258 { 13259 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13260 getDispatcher()->vkGetDisplayModeProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 13261 static_cast<VkDisplayKHR>( m_displayKHR ), 13262 &propertyCount, 13263 nullptr ) ); 13264 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 13265 { 13266 properties.resize( propertyCount ); 13267 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayModeProperties2KHR( 13268 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13269 static_cast<VkDisplayKHR>( m_displayKHR ), 13270 &propertyCount, 13271 reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) ); 13272 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 13273 } 13274 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 13275 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 13276 { 13277 properties.resize( propertyCount ); 13278 } 13279 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13280 { 13281 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" ); 13282 } 13283 return properties; 13284 } 13285 13286 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo) const13287 PhysicalDevice::getDisplayPlaneCapabilities2KHR( 13288 const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo ) const 13289 { 13290 VULKAN_HPP_ASSERT( 13291 getDispatcher()->vkGetDisplayPlaneCapabilities2KHR && 13292 "Function <vkGetDisplayPlaneCapabilities2KHR> needs extension <VK_KHR_get_display_properties2> enabled!" ); 13293 13294 VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities; 13295 VULKAN_HPP_NAMESPACE::Result result = 13296 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayPlaneCapabilities2KHR( 13297 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13298 reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ), 13299 reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) ) ); 13300 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13301 { 13302 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); 13303 } 13304 return capabilities; 13305 } 13306 13307 //=== VK_EXT_debug_utils === 13308 13309 VULKAN_HPP_INLINE void setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo) const13310 Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo ) const 13311 { 13312 VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectNameEXT && 13313 "Function <vkSetDebugUtilsObjectNameEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13314 13315 VULKAN_HPP_NAMESPACE::Result result = 13316 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetDebugUtilsObjectNameEXT( 13317 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) ); 13318 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13319 { 13320 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" ); 13321 } 13322 } 13323 13324 VULKAN_HPP_INLINE void setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo) const13325 Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo ) const 13326 { 13327 VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectTagEXT && 13328 "Function <vkSetDebugUtilsObjectTagEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13329 13330 VULKAN_HPP_NAMESPACE::Result result = 13331 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetDebugUtilsObjectTagEXT( 13332 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) ); 13333 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13334 { 13335 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" ); 13336 } 13337 } 13338 beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo) const13339 VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( 13340 const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT 13341 { 13342 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBeginDebugUtilsLabelEXT && 13343 "Function <vkQueueBeginDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13344 13345 getDispatcher()->vkQueueBeginDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ), 13346 reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) ); 13347 } 13348 endDebugUtilsLabelEXT() const13349 VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT 13350 { 13351 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueEndDebugUtilsLabelEXT && 13352 "Function <vkQueueEndDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13353 13354 getDispatcher()->vkQueueEndDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ) ); 13355 } 13356 insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo) const13357 VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( 13358 const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT 13359 { 13360 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueInsertDebugUtilsLabelEXT && 13361 "Function <vkQueueInsertDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13362 13363 getDispatcher()->vkQueueInsertDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ), 13364 reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) ); 13365 } 13366 beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo) const13367 VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( 13368 const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT 13369 { 13370 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginDebugUtilsLabelEXT && 13371 "Function <vkCmdBeginDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13372 13373 getDispatcher()->vkCmdBeginDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 13374 reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) ); 13375 } 13376 endDebugUtilsLabelEXT() const13377 VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT 13378 { 13379 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndDebugUtilsLabelEXT && 13380 "Function <vkCmdEndDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13381 13382 getDispatcher()->vkCmdEndDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 13383 } 13384 insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo) const13385 VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( 13386 const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT 13387 { 13388 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdInsertDebugUtilsLabelEXT && 13389 "Function <vkCmdInsertDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13390 13391 getDispatcher()->vkCmdInsertDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 13392 reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) ); 13393 } 13394 submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData) const13395 VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( 13396 VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 13397 VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, 13398 const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT 13399 { 13400 VULKAN_HPP_ASSERT( getDispatcher()->vkSubmitDebugUtilsMessageEXT && 13401 "Function <vkSubmitDebugUtilsMessageEXT> needs extension <VK_EXT_debug_utils> enabled!" ); 13402 13403 getDispatcher()->vkSubmitDebugUtilsMessageEXT( 13404 static_cast<VkInstance>( m_instance ), 13405 static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), 13406 static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), 13407 reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( &callbackData ) ); 13408 } 13409 13410 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 13411 //=== VK_ANDROID_external_memory_android_hardware_buffer === 13412 13413 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer) const13414 Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const 13415 { 13416 VULKAN_HPP_ASSERT( 13417 getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID && 13418 "Function <vkGetAndroidHardwareBufferPropertiesANDROID> needs extension <VK_ANDROID_external_memory_android_hardware_buffer> enabled!" ); 13419 13420 VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties; 13421 VULKAN_HPP_NAMESPACE::Result result = 13422 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( 13423 static_cast<VkDevice>( m_device ), 13424 &buffer, 13425 reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) ); 13426 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13427 { 13428 throwResultException( result, 13429 VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); 13430 } 13431 return properties; 13432 } 13433 13434 template <typename X, typename Y, typename... Z> 13435 VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer) const13436 Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const 13437 { 13438 StructureChain<X, Y, Z...> structureChain; 13439 VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = 13440 structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>(); 13441 VULKAN_HPP_NAMESPACE::Result result = 13442 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( 13443 static_cast<VkDevice>( m_device ), 13444 &buffer, 13445 reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) ); 13446 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13447 { 13448 throwResultException( result, 13449 VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); 13450 } 13451 return structureChain; 13452 } 13453 getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info) const13454 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE struct AHardwareBuffer * Device::getMemoryAndroidHardwareBufferANDROID( 13455 const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info ) const 13456 { 13457 VULKAN_HPP_ASSERT( 13458 getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID && 13459 "Function <vkGetMemoryAndroidHardwareBufferANDROID> needs extension <VK_ANDROID_external_memory_android_hardware_buffer> enabled!" ); 13460 13461 struct AHardwareBuffer * buffer; 13462 VULKAN_HPP_NAMESPACE::Result result = 13463 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID( 13464 static_cast<VkDevice>( m_device ), 13465 reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), 13466 &buffer ) ); 13467 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13468 { 13469 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" ); 13470 } 13471 return buffer; 13472 } 13473 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 13474 13475 //=== VK_EXT_sample_locations === 13476 setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo) const13477 VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( 13478 const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT 13479 { 13480 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleLocationsEXT && 13481 "Function <vkCmdSetSampleLocationsEXT> needs extension <VK_EXT_sample_locations> enabled!" ); 13482 13483 getDispatcher()->vkCmdSetSampleLocationsEXT( 13484 static_cast<VkCommandBuffer>( m_commandBuffer ), 13485 reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) ); 13486 } 13487 13488 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples) const13489 PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const 13490 VULKAN_HPP_NOEXCEPT 13491 { 13492 VULKAN_HPP_ASSERT( 13493 getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT && 13494 "Function <vkGetPhysicalDeviceMultisamplePropertiesEXT> needs extension <VK_EXT_sample_locations> enabled!" ); 13495 13496 VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; 13497 getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT( 13498 static_cast<VkPhysicalDevice>( m_physicalDevice ), 13499 static_cast<VkSampleCountFlagBits>( samples ), 13500 reinterpret_cast<VkMultisamplePropertiesEXT *>( &multisampleProperties ) ); 13501 return multisampleProperties; 13502 } 13503 13504 //=== VK_KHR_get_memory_requirements2 === 13505 13506 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info) const13507 Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const 13508 VULKAN_HPP_NOEXCEPT 13509 { 13510 VULKAN_HPP_ASSERT( 13511 getDispatcher()->vkGetImageMemoryRequirements2KHR && 13512 "Function <vkGetImageMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" ); 13513 13514 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 13515 getDispatcher()->vkGetImageMemoryRequirements2KHR( 13516 static_cast<VkDevice>( m_device ), 13517 reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), 13518 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 13519 return memoryRequirements; 13520 } 13521 13522 template <typename X, typename Y, typename... Z> getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info) const13523 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirements2KHR( 13524 const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 13525 { 13526 VULKAN_HPP_ASSERT( 13527 getDispatcher()->vkGetImageMemoryRequirements2KHR && 13528 "Function <vkGetImageMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" ); 13529 13530 StructureChain<X, Y, Z...> structureChain; 13531 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = 13532 structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 13533 getDispatcher()->vkGetImageMemoryRequirements2KHR( 13534 static_cast<VkDevice>( m_device ), 13535 reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), 13536 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 13537 return structureChain; 13538 } 13539 13540 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info) const13541 Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const 13542 VULKAN_HPP_NOEXCEPT 13543 { 13544 VULKAN_HPP_ASSERT( 13545 getDispatcher()->vkGetBufferMemoryRequirements2KHR && 13546 "Function <vkGetBufferMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" ); 13547 13548 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 13549 getDispatcher()->vkGetBufferMemoryRequirements2KHR( 13550 static_cast<VkDevice>( m_device ), 13551 reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), 13552 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 13553 return memoryRequirements; 13554 } 13555 13556 template <typename X, typename Y, typename... Z> getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info) const13557 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirements2KHR( 13558 const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 13559 { 13560 VULKAN_HPP_ASSERT( 13561 getDispatcher()->vkGetBufferMemoryRequirements2KHR && 13562 "Function <vkGetBufferMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" ); 13563 13564 StructureChain<X, Y, Z...> structureChain; 13565 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = 13566 structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 13567 getDispatcher()->vkGetBufferMemoryRequirements2KHR( 13568 static_cast<VkDevice>( m_device ), 13569 reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), 13570 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 13571 return structureChain; 13572 } 13573 13574 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info) const13575 Device::getImageSparseMemoryRequirements2KHR( 13576 const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 13577 { 13578 VULKAN_HPP_ASSERT( 13579 getDispatcher()->vkGetImageSparseMemoryRequirements2KHR && 13580 "Function <vkGetImageSparseMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!" ); 13581 13582 uint32_t sparseMemoryRequirementCount; 13583 getDispatcher()->vkGetImageSparseMemoryRequirements2KHR( 13584 static_cast<VkDevice>( m_device ), 13585 reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), 13586 &sparseMemoryRequirementCount, 13587 nullptr ); 13588 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements( 13589 sparseMemoryRequirementCount ); 13590 getDispatcher()->vkGetImageSparseMemoryRequirements2KHR( 13591 static_cast<VkDevice>( m_device ), 13592 reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), 13593 &sparseMemoryRequirementCount, 13594 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) ); 13595 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 13596 return sparseMemoryRequirements; 13597 } 13598 13599 //=== VK_KHR_acceleration_structure === 13600 buildAccelerationStructuresKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos) const13601 VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( 13602 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 13603 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos ) 13604 const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 13605 { 13606 VULKAN_HPP_ASSERT( 13607 getDispatcher()->vkCmdBuildAccelerationStructuresKHR && 13608 "Function <vkCmdBuildAccelerationStructuresKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13609 13610 # ifdef VULKAN_HPP_NO_EXCEPTIONS 13611 VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); 13612 # else 13613 if ( infos.size() != pBuildRangeInfos.size() ) 13614 { 13615 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 13616 "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); 13617 } 13618 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 13619 13620 getDispatcher()->vkCmdBuildAccelerationStructuresKHR( 13621 static_cast<VkCommandBuffer>( m_commandBuffer ), 13622 infos.size(), 13623 reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), 13624 reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) ); 13625 } 13626 buildAccelerationStructuresIndirectKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses,ArrayProxy<const uint32_t> const & indirectStrides,ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts) const13627 VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( 13628 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 13629 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses, 13630 ArrayProxy<const uint32_t> const & indirectStrides, 13631 ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 13632 { 13633 VULKAN_HPP_ASSERT( 13634 getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR && 13635 "Function <vkCmdBuildAccelerationStructuresIndirectKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13636 13637 # ifdef VULKAN_HPP_NO_EXCEPTIONS 13638 VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() ); 13639 VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() ); 13640 VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() ); 13641 # else 13642 if ( infos.size() != indirectDeviceAddresses.size() ) 13643 { 13644 throw LogicError( 13645 VULKAN_HPP_NAMESPACE_STRING 13646 "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectDeviceAddresses.size()" ); 13647 } 13648 if ( infos.size() != indirectStrides.size() ) 13649 { 13650 throw LogicError( 13651 VULKAN_HPP_NAMESPACE_STRING 13652 "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectStrides.size()" ); 13653 } 13654 if ( infos.size() != pMaxPrimitiveCounts.size() ) 13655 { 13656 throw LogicError( 13657 VULKAN_HPP_NAMESPACE_STRING 13658 "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()" ); 13659 } 13660 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 13661 13662 getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR( 13663 static_cast<VkCommandBuffer>( m_commandBuffer ), 13664 infos.size(), 13665 reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), 13666 reinterpret_cast<const VkDeviceAddress *>( indirectDeviceAddresses.data() ), 13667 indirectStrides.data(), 13668 pMaxPrimitiveCounts.data() ); 13669 } 13670 buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos) const13671 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::buildAccelerationStructuresKHR( 13672 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 13673 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 13674 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos ) 13675 const 13676 { 13677 VULKAN_HPP_ASSERT( 13678 getDispatcher()->vkBuildAccelerationStructuresKHR && 13679 "Function <vkBuildAccelerationStructuresKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13680 if ( infos.size() != pBuildRangeInfos.size() ) 13681 { 13682 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 13683 "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); 13684 } 13685 13686 VULKAN_HPP_NAMESPACE::Result result = 13687 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBuildAccelerationStructuresKHR( 13688 static_cast<VkDevice>( m_device ), 13689 static_cast<VkDeferredOperationKHR>( deferredOperation ), 13690 infos.size(), 13691 reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), 13692 reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) ) ); 13693 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 13694 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && 13695 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) ) 13696 { 13697 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR" ); 13698 } 13699 return result; 13700 } 13701 13702 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result copyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info) const13703 Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 13704 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const 13705 { 13706 VULKAN_HPP_ASSERT( 13707 getDispatcher()->vkCopyAccelerationStructureKHR && 13708 "Function <vkCopyAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13709 13710 VULKAN_HPP_NAMESPACE::Result result = 13711 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyAccelerationStructureKHR( 13712 static_cast<VkDevice>( m_device ), 13713 static_cast<VkDeferredOperationKHR>( deferredOperation ), 13714 reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) ); 13715 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 13716 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && 13717 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) ) 13718 { 13719 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR" ); 13720 } 13721 return result; 13722 } 13723 copyAccelerationStructureToMemoryKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info) const13724 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyAccelerationStructureToMemoryKHR( 13725 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 13726 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const 13727 { 13728 VULKAN_HPP_ASSERT( 13729 getDispatcher()->vkCopyAccelerationStructureToMemoryKHR && 13730 "Function <vkCopyAccelerationStructureToMemoryKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13731 13732 VULKAN_HPP_NAMESPACE::Result result = 13733 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyAccelerationStructureToMemoryKHR( 13734 static_cast<VkDevice>( m_device ), 13735 static_cast<VkDeferredOperationKHR>( deferredOperation ), 13736 reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) ); 13737 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 13738 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && 13739 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) ) 13740 { 13741 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR" ); 13742 } 13743 return result; 13744 } 13745 copyMemoryToAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info) const13746 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyMemoryToAccelerationStructureKHR( 13747 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 13748 const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const 13749 { 13750 VULKAN_HPP_ASSERT( 13751 getDispatcher()->vkCopyMemoryToAccelerationStructureKHR && 13752 "Function <vkCopyMemoryToAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13753 13754 VULKAN_HPP_NAMESPACE::Result result = 13755 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyMemoryToAccelerationStructureKHR( 13756 static_cast<VkDevice>( m_device ), 13757 static_cast<VkDeferredOperationKHR>( deferredOperation ), 13758 reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) ); 13759 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 13760 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && 13761 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) ) 13762 { 13763 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR" ); 13764 } 13765 return result; 13766 } 13767 13768 template <typename T> writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,size_t stride) const13769 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<T> Device::writeAccelerationStructuresPropertiesKHR( 13770 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 13771 VULKAN_HPP_NAMESPACE::QueryType queryType, 13772 size_t dataSize, 13773 size_t stride ) const 13774 { 13775 VULKAN_HPP_ASSERT( 13776 getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR && 13777 "Function <vkWriteAccelerationStructuresPropertiesKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13778 13779 VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); 13780 std::vector<T> data( dataSize / sizeof( T ) ); 13781 Result result = static_cast<Result>( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( 13782 static_cast<VkDevice>( m_device ), 13783 accelerationStructures.size(), 13784 reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), 13785 static_cast<VkQueryType>( queryType ), 13786 data.size() * sizeof( T ), 13787 reinterpret_cast<void *>( data.data() ), 13788 stride ) ); 13789 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13790 { 13791 throwResultException( result, 13792 VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); 13793 } 13794 return data; 13795 } 13796 13797 template <typename T> writeAccelerationStructuresPropertyKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t stride) const13798 VULKAN_HPP_NODISCARD T Device::writeAccelerationStructuresPropertyKHR( 13799 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 13800 VULKAN_HPP_NAMESPACE::QueryType queryType, 13801 size_t stride ) const 13802 { 13803 T data; 13804 Result result = static_cast<Result>( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( 13805 static_cast<VkDevice>( m_device ), 13806 accelerationStructures.size(), 13807 reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), 13808 static_cast<VkQueryType>( queryType ), 13809 sizeof( T ), 13810 reinterpret_cast<void *>( &data ), 13811 stride ) ); 13812 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13813 { 13814 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" ); 13815 } 13816 return data; 13817 } 13818 copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info) const13819 VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( 13820 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 13821 { 13822 VULKAN_HPP_ASSERT( 13823 getDispatcher()->vkCmdCopyAccelerationStructureKHR && 13824 "Function <vkCmdCopyAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13825 13826 getDispatcher()->vkCmdCopyAccelerationStructureKHR( 13827 static_cast<VkCommandBuffer>( m_commandBuffer ), 13828 reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ); 13829 } 13830 copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info) const13831 VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( 13832 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 13833 { 13834 VULKAN_HPP_ASSERT( 13835 getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR && 13836 "Function <vkCmdCopyAccelerationStructureToMemoryKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13837 13838 getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR( 13839 static_cast<VkCommandBuffer>( m_commandBuffer ), 13840 reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ); 13841 } 13842 copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info) const13843 VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( 13844 const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 13845 { 13846 VULKAN_HPP_ASSERT( 13847 getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR && 13848 "Function <vkCmdCopyMemoryToAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13849 13850 getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR( 13851 static_cast<VkCommandBuffer>( m_commandBuffer ), 13852 reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ); 13853 } 13854 13855 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info) const13856 Device::getAccelerationStructureAddressKHR( 13857 const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 13858 { 13859 VULKAN_HPP_ASSERT( 13860 getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR && 13861 "Function <vkGetAccelerationStructureDeviceAddressKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13862 13863 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( 13864 getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR( 13865 static_cast<VkDevice>( m_device ), 13866 reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( &info ) ) ); 13867 } 13868 writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery) const13869 VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( 13870 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 13871 VULKAN_HPP_NAMESPACE::QueryType queryType, 13872 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 13873 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT 13874 { 13875 VULKAN_HPP_ASSERT( 13876 getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR && 13877 "Function <vkCmdWriteAccelerationStructuresPropertiesKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13878 13879 getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR( 13880 static_cast<VkCommandBuffer>( m_commandBuffer ), 13881 accelerationStructures.size(), 13882 reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), 13883 static_cast<VkQueryType>( queryType ), 13884 static_cast<VkQueryPool>( queryPool ), 13885 firstQuery ); 13886 } 13887 13888 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo) const13889 Device::getAccelerationStructureCompatibilityKHR( 13890 const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo ) const VULKAN_HPP_NOEXCEPT 13891 { 13892 VULKAN_HPP_ASSERT( 13893 getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR && 13894 "Function <vkGetDeviceAccelerationStructureCompatibilityKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13895 13896 VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility; 13897 getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR( 13898 static_cast<VkDevice>( m_device ), 13899 reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( &versionInfo ), 13900 reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>( &compatibility ) ); 13901 return compatibility; 13902 } 13903 13904 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR getAccelerationStructureBuildSizesKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR & buildInfo,ArrayProxy<const uint32_t> const & maxPrimitiveCounts) const13905 Device::getAccelerationStructureBuildSizesKHR( 13906 VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, 13907 const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR & buildInfo, 13908 ArrayProxy<const uint32_t> const & maxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT 13909 { 13910 VULKAN_HPP_ASSERT( 13911 getDispatcher()->vkGetAccelerationStructureBuildSizesKHR && 13912 "Function <vkGetAccelerationStructureBuildSizesKHR> needs extension <VK_KHR_acceleration_structure> enabled!" ); 13913 13914 VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo; 13915 getDispatcher()->vkGetAccelerationStructureBuildSizesKHR( 13916 static_cast<VkDevice>( m_device ), 13917 static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ), 13918 reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( &buildInfo ), 13919 maxPrimitiveCounts.data(), 13920 reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( &sizeInfo ) ); 13921 return sizeInfo; 13922 } 13923 13924 //=== VK_KHR_sampler_ycbcr_conversion === 13925 destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const13926 VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( 13927 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, 13928 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NOEXCEPT 13929 { 13930 VULKAN_HPP_ASSERT( 13931 getDispatcher()->vkDestroySamplerYcbcrConversionKHR && 13932 "Function <vkDestroySamplerYcbcrConversionKHR> needs extension <VK_KHR_sampler_ycbcr_conversion> enabled!" ); 13933 13934 getDispatcher()->vkDestroySamplerYcbcrConversionKHR( 13935 static_cast<VkDevice>( m_device ), 13936 static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), 13937 reinterpret_cast<const VkAllocationCallbacks *>( 13938 static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ); 13939 } 13940 13941 //=== VK_KHR_bind_memory2 === 13942 bindBufferMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos) const13943 VULKAN_HPP_INLINE void Device::bindBufferMemory2KHR( 13944 ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const 13945 { 13946 VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory2KHR && 13947 "Function <vkBindBufferMemory2KHR> needs extension <VK_KHR_bind_memory2> enabled!" ); 13948 13949 VULKAN_HPP_NAMESPACE::Result result = 13950 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindBufferMemory2KHR( 13951 static_cast<VkDevice>( m_device ), 13952 bindInfos.size(), 13953 reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) ); 13954 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13955 { 13956 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" ); 13957 } 13958 } 13959 13960 VULKAN_HPP_INLINE void bindImageMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos) const13961 Device::bindImageMemory2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const 13962 { 13963 VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory2KHR && 13964 "Function <vkBindImageMemory2KHR> needs extension <VK_KHR_bind_memory2> enabled!" ); 13965 13966 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13967 getDispatcher()->vkBindImageMemory2KHR( static_cast<VkDevice>( m_device ), 13968 bindInfos.size(), 13969 reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) ); 13970 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13971 { 13972 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" ); 13973 } 13974 } 13975 13976 //=== VK_EXT_image_drm_format_modifier === 13977 13978 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT getDrmFormatModifierPropertiesEXT() const13979 Image::getDrmFormatModifierPropertiesEXT() const 13980 { 13981 VULKAN_HPP_ASSERT( 13982 getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT && 13983 "Function <vkGetImageDrmFormatModifierPropertiesEXT> needs extension <VK_EXT_image_drm_format_modifier> enabled!" ); 13984 13985 VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties; 13986 VULKAN_HPP_NAMESPACE::Result result = 13987 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT( 13988 static_cast<VkDevice>( m_device ), 13989 static_cast<VkImage>( m_image ), 13990 reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) ) ); 13991 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13992 { 13993 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Image::getDrmFormatModifierPropertiesEXT" ); 13994 } 13995 return properties; 13996 } 13997 13998 //=== VK_EXT_validation_cache === 13999 14000 VULKAN_HPP_INLINE void merge(ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches) const14001 ValidationCacheEXT::merge( ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches ) const 14002 { 14003 VULKAN_HPP_ASSERT( getDispatcher()->vkMergeValidationCachesEXT && 14004 "Function <vkMergeValidationCachesEXT> needs extension <VK_EXT_validation_cache> enabled!" ); 14005 14006 VULKAN_HPP_NAMESPACE::Result result = 14007 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkMergeValidationCachesEXT( 14008 static_cast<VkDevice>( m_device ), 14009 static_cast<VkValidationCacheEXT>( m_validationCacheEXT ), 14010 srcCaches.size(), 14011 reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) ); 14012 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14013 { 14014 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::merge" ); 14015 } 14016 } 14017 getData() const14018 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> ValidationCacheEXT::getData() const 14019 { 14020 VULKAN_HPP_ASSERT( getDispatcher()->vkGetValidationCacheDataEXT && 14021 "Function <vkGetValidationCacheDataEXT> needs extension <VK_EXT_validation_cache> enabled!" ); 14022 14023 std::vector<uint8_t> data; 14024 size_t dataSize; 14025 VULKAN_HPP_NAMESPACE::Result result; 14026 do 14027 { 14028 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14029 getDispatcher()->vkGetValidationCacheDataEXT( static_cast<VkDevice>( m_device ), 14030 static_cast<VkValidationCacheEXT>( m_validationCacheEXT ), 14031 &dataSize, 14032 nullptr ) ); 14033 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) 14034 { 14035 data.resize( dataSize ); 14036 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14037 getDispatcher()->vkGetValidationCacheDataEXT( static_cast<VkDevice>( m_device ), 14038 static_cast<VkValidationCacheEXT>( m_validationCacheEXT ), 14039 &dataSize, 14040 reinterpret_cast<void *>( data.data() ) ) ); 14041 VULKAN_HPP_ASSERT( dataSize <= data.size() ); 14042 } 14043 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 14044 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( dataSize < data.size() ) ) 14045 { 14046 data.resize( dataSize ); 14047 } 14048 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14049 { 14050 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::getData" ); 14051 } 14052 return data; 14053 } 14054 14055 //=== VK_NV_shading_rate_image === 14056 14057 VULKAN_HPP_INLINE void bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout) const14058 CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, 14059 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT 14060 { 14061 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindShadingRateImageNV && 14062 "Function <vkCmdBindShadingRateImageNV> needs extension <VK_NV_shading_rate_image> enabled!" ); 14063 14064 getDispatcher()->vkCmdBindShadingRateImageNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 14065 static_cast<VkImageView>( imageView ), 14066 static_cast<VkImageLayout>( imageLayout ) ); 14067 } 14068 setViewportShadingRatePaletteNV(uint32_t firstViewport,ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes) const14069 VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( 14070 uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes ) 14071 const VULKAN_HPP_NOEXCEPT 14072 { 14073 VULKAN_HPP_ASSERT( 14074 getDispatcher()->vkCmdSetViewportShadingRatePaletteNV && 14075 "Function <vkCmdSetViewportShadingRatePaletteNV> needs extension <VK_NV_shading_rate_image> enabled!" ); 14076 14077 getDispatcher()->vkCmdSetViewportShadingRatePaletteNV( 14078 static_cast<VkCommandBuffer>( m_commandBuffer ), 14079 firstViewport, 14080 shadingRatePalettes.size(), 14081 reinterpret_cast<const VkShadingRatePaletteNV *>( shadingRatePalettes.data() ) ); 14082 } 14083 setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders) const14084 VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( 14085 VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, 14086 ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders ) const 14087 VULKAN_HPP_NOEXCEPT 14088 { 14089 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoarseSampleOrderNV && 14090 "Function <vkCmdSetCoarseSampleOrderNV> needs extension <VK_NV_shading_rate_image> enabled!" ); 14091 14092 getDispatcher()->vkCmdSetCoarseSampleOrderNV( 14093 static_cast<VkCommandBuffer>( m_commandBuffer ), 14094 static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), 14095 customSampleOrders.size(), 14096 reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( customSampleOrders.data() ) ); 14097 } 14098 14099 //=== VK_NV_ray_tracing === 14100 14101 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info) const14102 Device::getAccelerationStructureMemoryRequirementsNV( 14103 const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT 14104 { 14105 VULKAN_HPP_ASSERT( 14106 getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV && 14107 "Function <vkGetAccelerationStructureMemoryRequirementsNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14108 14109 VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements; 14110 getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( 14111 static_cast<VkDevice>( m_device ), 14112 reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), 14113 reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) ); 14114 return memoryRequirements; 14115 } 14116 14117 template <typename X, typename Y, typename... Z> 14118 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info) const14119 Device::getAccelerationStructureMemoryRequirementsNV( 14120 const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT 14121 { 14122 VULKAN_HPP_ASSERT( 14123 getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV && 14124 "Function <vkGetAccelerationStructureMemoryRequirementsNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14125 14126 StructureChain<X, Y, Z...> structureChain; 14127 VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = 14128 structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>(); 14129 getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( 14130 static_cast<VkDevice>( m_device ), 14131 reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), 14132 reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) ); 14133 return structureChain; 14134 } 14135 bindAccelerationStructureMemoryNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos) const14136 VULKAN_HPP_INLINE void Device::bindAccelerationStructureMemoryNV( 14137 ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos ) const 14138 { 14139 VULKAN_HPP_ASSERT( 14140 getDispatcher()->vkBindAccelerationStructureMemoryNV && 14141 "Function <vkBindAccelerationStructureMemoryNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14142 14143 VULKAN_HPP_NAMESPACE::Result result = 14144 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindAccelerationStructureMemoryNV( 14145 static_cast<VkDevice>( m_device ), 14146 bindInfos.size(), 14147 reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( bindInfos.data() ) ) ); 14148 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14149 { 14150 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" ); 14151 } 14152 } 14153 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) const14154 VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( 14155 const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV & info, 14156 VULKAN_HPP_NAMESPACE::Buffer instanceData, 14157 VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, 14158 VULKAN_HPP_NAMESPACE::Bool32 update, 14159 VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, 14160 VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, 14161 VULKAN_HPP_NAMESPACE::Buffer scratch, 14162 VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT 14163 { 14164 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructureNV && 14165 "Function <vkCmdBuildAccelerationStructureNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14166 14167 getDispatcher()->vkCmdBuildAccelerationStructureNV( 14168 static_cast<VkCommandBuffer>( m_commandBuffer ), 14169 reinterpret_cast<const VkAccelerationStructureInfoNV *>( &info ), 14170 static_cast<VkBuffer>( instanceData ), 14171 static_cast<VkDeviceSize>( instanceOffset ), 14172 static_cast<VkBool32>( update ), 14173 static_cast<VkAccelerationStructureNV>( dst ), 14174 static_cast<VkAccelerationStructureNV>( src ), 14175 static_cast<VkBuffer>( scratch ), 14176 static_cast<VkDeviceSize>( scratchOffset ) ); 14177 } 14178 copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst,VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode) const14179 VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( 14180 VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, 14181 VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, 14182 VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT 14183 { 14184 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureNV && 14185 "Function <vkCmdCopyAccelerationStructureNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14186 14187 getDispatcher()->vkCmdCopyAccelerationStructureNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 14188 static_cast<VkAccelerationStructureNV>( dst ), 14189 static_cast<VkAccelerationStructureNV>( src ), 14190 static_cast<VkCopyAccelerationStructureModeKHR>( mode ) ); 14191 } 14192 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) const14193 VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, 14194 VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, 14195 VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, 14196 VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, 14197 VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, 14198 VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, 14199 VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, 14200 VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, 14201 VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, 14202 VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, 14203 VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, 14204 uint32_t width, 14205 uint32_t height, 14206 uint32_t depth ) const VULKAN_HPP_NOEXCEPT 14207 { 14208 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysNV && 14209 "Function <vkCmdTraceRaysNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14210 14211 getDispatcher()->vkCmdTraceRaysNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 14212 static_cast<VkBuffer>( raygenShaderBindingTableBuffer ), 14213 static_cast<VkDeviceSize>( raygenShaderBindingOffset ), 14214 static_cast<VkBuffer>( missShaderBindingTableBuffer ), 14215 static_cast<VkDeviceSize>( missShaderBindingOffset ), 14216 static_cast<VkDeviceSize>( missShaderBindingStride ), 14217 static_cast<VkBuffer>( hitShaderBindingTableBuffer ), 14218 static_cast<VkDeviceSize>( hitShaderBindingOffset ), 14219 static_cast<VkDeviceSize>( hitShaderBindingStride ), 14220 static_cast<VkBuffer>( callableShaderBindingTableBuffer ), 14221 static_cast<VkDeviceSize>( callableShaderBindingOffset ), 14222 static_cast<VkDeviceSize>( callableShaderBindingStride ), 14223 width, 14224 height, 14225 depth ); 14226 } 14227 14228 template <typename T> 14229 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<T> getRayTracingShaderGroupHandlesNV(uint32_t firstGroup,uint32_t groupCount,size_t dataSize) const14230 Pipeline::getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const 14231 { 14232 VULKAN_HPP_ASSERT( 14233 getDispatcher()->vkGetRayTracingShaderGroupHandlesNV && 14234 "Function <vkGetRayTracingShaderGroupHandlesNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14235 14236 VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); 14237 std::vector<T> data( dataSize / sizeof( T ) ); 14238 Result result = static_cast<Result>( 14239 getDispatcher()->vkGetRayTracingShaderGroupHandlesNV( static_cast<VkDevice>( m_device ), 14240 static_cast<VkPipeline>( m_pipeline ), 14241 firstGroup, 14242 groupCount, 14243 data.size() * sizeof( T ), 14244 reinterpret_cast<void *>( data.data() ) ) ); 14245 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14246 { 14247 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesNV" ); 14248 } 14249 return data; 14250 } 14251 14252 template <typename T> getRayTracingShaderGroupHandleNV(uint32_t firstGroup,uint32_t groupCount) const14253 VULKAN_HPP_NODISCARD T Pipeline::getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const 14254 { 14255 T data; 14256 Result result = static_cast<Result>( 14257 getDispatcher()->vkGetRayTracingShaderGroupHandlesNV( static_cast<VkDevice>( m_device ), 14258 static_cast<VkPipeline>( m_pipeline ), 14259 firstGroup, 14260 groupCount, 14261 sizeof( T ), 14262 reinterpret_cast<void *>( &data ) ) ); 14263 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14264 { 14265 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleNV" ); 14266 } 14267 return data; 14268 } 14269 14270 template <typename T> getHandle(size_t dataSize) const14271 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<T> AccelerationStructureNV::getHandle( size_t dataSize ) const 14272 { 14273 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && 14274 "Function <vkGetAccelerationStructureHandleNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14275 14276 VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); 14277 std::vector<T> data( dataSize / sizeof( T ) ); 14278 Result result = static_cast<Result>( getDispatcher()->vkGetAccelerationStructureHandleNV( 14279 static_cast<VkDevice>( m_device ), 14280 static_cast<VkAccelerationStructureNV>( m_accelerationStructureNV ), 14281 data.size() * sizeof( T ), 14282 reinterpret_cast<void *>( data.data() ) ) ); 14283 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14284 { 14285 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); 14286 } 14287 return data; 14288 } 14289 14290 template <typename T> getHandle() const14291 VULKAN_HPP_NODISCARD T AccelerationStructureNV::getHandle() const 14292 { 14293 T data; 14294 Result result = static_cast<Result>( getDispatcher()->vkGetAccelerationStructureHandleNV( 14295 static_cast<VkDevice>( m_device ), 14296 static_cast<VkAccelerationStructureNV>( m_accelerationStructureNV ), 14297 sizeof( T ), 14298 reinterpret_cast<void *>( &data ) ) ); 14299 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14300 { 14301 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); 14302 } 14303 return data; 14304 } 14305 writeAccelerationStructuresPropertiesNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery) const14306 VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( 14307 ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures, 14308 VULKAN_HPP_NAMESPACE::QueryType queryType, 14309 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 14310 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT 14311 { 14312 VULKAN_HPP_ASSERT( 14313 getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV && 14314 "Function <vkCmdWriteAccelerationStructuresPropertiesNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14315 14316 getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV( 14317 static_cast<VkCommandBuffer>( m_commandBuffer ), 14318 accelerationStructures.size(), 14319 reinterpret_cast<const VkAccelerationStructureNV *>( accelerationStructures.data() ), 14320 static_cast<VkQueryType>( queryType ), 14321 static_cast<VkQueryPool>( queryPool ), 14322 firstQuery ); 14323 } 14324 compileDeferredNV(uint32_t shader) const14325 VULKAN_HPP_INLINE void Pipeline::compileDeferredNV( uint32_t shader ) const 14326 { 14327 VULKAN_HPP_ASSERT( getDispatcher()->vkCompileDeferredNV && 14328 "Function <vkCompileDeferredNV> needs extension <VK_NV_ray_tracing> enabled!" ); 14329 14330 VULKAN_HPP_NAMESPACE::Result result = 14331 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCompileDeferredNV( 14332 static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), shader ) ); 14333 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14334 { 14335 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::compileDeferredNV" ); 14336 } 14337 } 14338 14339 //=== VK_KHR_maintenance3 === 14340 14341 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo) const14342 Device::getDescriptorSetLayoutSupportKHR( 14343 const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 14344 { 14345 VULKAN_HPP_ASSERT( 14346 getDispatcher()->vkGetDescriptorSetLayoutSupportKHR && 14347 "Function <vkGetDescriptorSetLayoutSupportKHR> needs extension <VK_KHR_maintenance3> enabled!" ); 14348 14349 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; 14350 getDispatcher()->vkGetDescriptorSetLayoutSupportKHR( 14351 static_cast<VkDevice>( m_device ), 14352 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 14353 reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) ); 14354 return support; 14355 } 14356 14357 template <typename X, typename Y, typename... Z> getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo) const14358 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getDescriptorSetLayoutSupportKHR( 14359 const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 14360 { 14361 VULKAN_HPP_ASSERT( 14362 getDispatcher()->vkGetDescriptorSetLayoutSupportKHR && 14363 "Function <vkGetDescriptorSetLayoutSupportKHR> needs extension <VK_KHR_maintenance3> enabled!" ); 14364 14365 StructureChain<X, Y, Z...> structureChain; 14366 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = 14367 structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>(); 14368 getDispatcher()->vkGetDescriptorSetLayoutSupportKHR( 14369 static_cast<VkDevice>( m_device ), 14370 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 14371 reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) ); 14372 return structureChain; 14373 } 14374 14375 //=== VK_KHR_draw_indirect_count === 14376 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) const14377 VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 14378 VULKAN_HPP_NAMESPACE::DeviceSize offset, 14379 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 14380 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 14381 uint32_t maxDrawCount, 14382 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 14383 { 14384 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectCountKHR && 14385 "Function <vkCmdDrawIndirectCountKHR> needs extension <VK_KHR_draw_indirect_count> enabled!" ); 14386 14387 getDispatcher()->vkCmdDrawIndirectCountKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 14388 static_cast<VkBuffer>( buffer ), 14389 static_cast<VkDeviceSize>( offset ), 14390 static_cast<VkBuffer>( countBuffer ), 14391 static_cast<VkDeviceSize>( countBufferOffset ), 14392 maxDrawCount, 14393 stride ); 14394 } 14395 14396 VULKAN_HPP_INLINE void 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) const14397 CommandBuffer::drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 14398 VULKAN_HPP_NAMESPACE::DeviceSize offset, 14399 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 14400 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 14401 uint32_t maxDrawCount, 14402 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 14403 { 14404 VULKAN_HPP_ASSERT( 14405 getDispatcher()->vkCmdDrawIndexedIndirectCountKHR && 14406 "Function <vkCmdDrawIndexedIndirectCountKHR> needs extension <VK_KHR_draw_indirect_count> enabled!" ); 14407 14408 getDispatcher()->vkCmdDrawIndexedIndirectCountKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 14409 static_cast<VkBuffer>( buffer ), 14410 static_cast<VkDeviceSize>( offset ), 14411 static_cast<VkBuffer>( countBuffer ), 14412 static_cast<VkDeviceSize>( countBufferOffset ), 14413 maxDrawCount, 14414 stride ); 14415 } 14416 14417 //=== VK_EXT_external_memory_host === 14418 14419 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer) const14420 Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, 14421 const void * pHostPointer ) const 14422 { 14423 VULKAN_HPP_ASSERT( 14424 getDispatcher()->vkGetMemoryHostPointerPropertiesEXT && 14425 "Function <vkGetMemoryHostPointerPropertiesEXT> needs extension <VK_EXT_external_memory_host> enabled!" ); 14426 14427 VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties; 14428 VULKAN_HPP_NAMESPACE::Result result = 14429 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryHostPointerPropertiesEXT( 14430 static_cast<VkDevice>( m_device ), 14431 static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), 14432 pHostPointer, 14433 reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) ) ); 14434 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14435 { 14436 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" ); 14437 } 14438 return memoryHostPointerProperties; 14439 } 14440 14441 //=== VK_AMD_buffer_marker === 14442 14443 VULKAN_HPP_INLINE void writeBufferMarkerAMD(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,uint32_t marker) const14444 CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, 14445 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 14446 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 14447 uint32_t marker ) const VULKAN_HPP_NOEXCEPT 14448 { 14449 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarkerAMD && 14450 "Function <vkCmdWriteBufferMarkerAMD> needs extension <VK_AMD_buffer_marker> enabled!" ); 14451 14452 getDispatcher()->vkCmdWriteBufferMarkerAMD( static_cast<VkCommandBuffer>( m_commandBuffer ), 14453 static_cast<VkPipelineStageFlagBits>( pipelineStage ), 14454 static_cast<VkBuffer>( dstBuffer ), 14455 static_cast<VkDeviceSize>( dstOffset ), 14456 marker ); 14457 } 14458 14459 //=== VK_EXT_calibrated_timestamps === 14460 14461 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> getCalibrateableTimeDomainsEXT() const14462 PhysicalDevice::getCalibrateableTimeDomainsEXT() const 14463 { 14464 VULKAN_HPP_ASSERT( 14465 getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT && 14466 "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!" ); 14467 14468 std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> timeDomains; 14469 uint32_t timeDomainCount; 14470 VULKAN_HPP_NAMESPACE::Result result; 14471 do 14472 { 14473 result = 14474 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( 14475 static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, nullptr ) ); 14476 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount ) 14477 { 14478 timeDomains.resize( timeDomainCount ); 14479 result = 14480 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( 14481 static_cast<VkPhysicalDevice>( m_physicalDevice ), 14482 &timeDomainCount, 14483 reinterpret_cast<VkTimeDomainEXT *>( timeDomains.data() ) ) ); 14484 VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); 14485 } 14486 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 14487 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) ) 14488 { 14489 timeDomains.resize( timeDomainCount ); 14490 } 14491 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14492 { 14493 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); 14494 } 14495 return timeDomains; 14496 } 14497 14498 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<std::vector<uint64_t>, uint64_t> getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos) const14499 Device::getCalibratedTimestampsEXT( 14500 ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const & timestampInfos ) const 14501 { 14502 VULKAN_HPP_ASSERT( 14503 getDispatcher()->vkGetCalibratedTimestampsEXT && 14504 "Function <vkGetCalibratedTimestampsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!" ); 14505 14506 std::pair<std::vector<uint64_t>, uint64_t> data( 14507 std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) ); 14508 std::vector<uint64_t> & timestamps = data.first; 14509 uint64_t & maxDeviation = data.second; 14510 VULKAN_HPP_NAMESPACE::Result result = 14511 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCalibratedTimestampsEXT( 14512 static_cast<VkDevice>( m_device ), 14513 timestampInfos.size(), 14514 reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( timestampInfos.data() ), 14515 timestamps.data(), 14516 &maxDeviation ) ); 14517 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14518 { 14519 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); 14520 } 14521 return data; 14522 } 14523 14524 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint64_t, uint64_t> getCalibratedTimestampEXT(const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo) const14525 Device::getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT & timestampInfo ) const 14526 { 14527 VULKAN_HPP_ASSERT( 14528 getDispatcher()->vkGetCalibratedTimestampsEXT && 14529 "Function <vkGetCalibratedTimestampsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!" ); 14530 14531 std::pair<uint64_t, uint64_t> data; 14532 uint64_t & timestamp = data.first; 14533 uint64_t & maxDeviation = data.second; 14534 VULKAN_HPP_NAMESPACE::Result result = 14535 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCalibratedTimestampsEXT( 14536 static_cast<VkDevice>( m_device ), 14537 1, 14538 reinterpret_cast<const VkCalibratedTimestampInfoEXT *>( ×tampInfo ), 14539 ×tamp, 14540 &maxDeviation ) ); 14541 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14542 { 14543 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" ); 14544 } 14545 return data; 14546 } 14547 14548 //=== VK_NV_mesh_shader === 14549 drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask) const14550 VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, 14551 uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT 14552 { 14553 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksNV && 14554 "Function <vkCmdDrawMeshTasksNV> needs extension <VK_NV_mesh_shader> enabled!" ); 14555 14556 getDispatcher()->vkCmdDrawMeshTasksNV( static_cast<VkCommandBuffer>( m_commandBuffer ), taskCount, firstTask ); 14557 } 14558 drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride) const14559 VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, 14560 VULKAN_HPP_NAMESPACE::DeviceSize offset, 14561 uint32_t drawCount, 14562 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 14563 { 14564 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectNV && 14565 "Function <vkCmdDrawMeshTasksIndirectNV> needs extension <VK_NV_mesh_shader> enabled!" ); 14566 14567 getDispatcher()->vkCmdDrawMeshTasksIndirectNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 14568 static_cast<VkBuffer>( buffer ), 14569 static_cast<VkDeviceSize>( offset ), 14570 drawCount, 14571 stride ); 14572 } 14573 14574 VULKAN_HPP_INLINE void 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) const14575 CommandBuffer::drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, 14576 VULKAN_HPP_NAMESPACE::DeviceSize offset, 14577 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 14578 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 14579 uint32_t maxDrawCount, 14580 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 14581 { 14582 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV && 14583 "Function <vkCmdDrawMeshTasksIndirectCountNV> needs extension <VK_NV_mesh_shader> enabled!" ); 14584 14585 getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 14586 static_cast<VkBuffer>( buffer ), 14587 static_cast<VkDeviceSize>( offset ), 14588 static_cast<VkBuffer>( countBuffer ), 14589 static_cast<VkDeviceSize>( countBufferOffset ), 14590 maxDrawCount, 14591 stride ); 14592 } 14593 14594 //=== VK_NV_scissor_exclusive === 14595 setExclusiveScissorNV(uint32_t firstExclusiveScissor,ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors) const14596 VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( 14597 uint32_t firstExclusiveScissor, 14598 ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors ) const VULKAN_HPP_NOEXCEPT 14599 { 14600 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExclusiveScissorNV && 14601 "Function <vkCmdSetExclusiveScissorNV> needs extension <VK_NV_scissor_exclusive> enabled!" ); 14602 14603 getDispatcher()->vkCmdSetExclusiveScissorNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 14604 firstExclusiveScissor, 14605 exclusiveScissors.size(), 14606 reinterpret_cast<const VkRect2D *>( exclusiveScissors.data() ) ); 14607 } 14608 14609 //=== VK_NV_device_diagnostic_checkpoints === 14610 setCheckpointNV(const void * pCheckpointMarker) const14611 VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void * pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT 14612 { 14613 VULKAN_HPP_ASSERT( 14614 getDispatcher()->vkCmdSetCheckpointNV && 14615 "Function <vkCmdSetCheckpointNV> needs extension <VK_NV_device_diagnostic_checkpoints> enabled!" ); 14616 14617 getDispatcher()->vkCmdSetCheckpointNV( static_cast<VkCommandBuffer>( m_commandBuffer ), pCheckpointMarker ); 14618 } 14619 14620 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> getCheckpointDataNV() const14621 Queue::getCheckpointDataNV() const VULKAN_HPP_NOEXCEPT 14622 { 14623 VULKAN_HPP_ASSERT( 14624 getDispatcher()->vkGetQueueCheckpointDataNV && 14625 "Function <vkGetQueueCheckpointDataNV> needs extension <VK_NV_device_diagnostic_checkpoints> enabled!" ); 14626 14627 uint32_t checkpointDataCount; 14628 getDispatcher()->vkGetQueueCheckpointDataNV( static_cast<VkQueue>( m_queue ), &checkpointDataCount, nullptr ); 14629 std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> checkpointData( checkpointDataCount ); 14630 getDispatcher()->vkGetQueueCheckpointDataNV( static_cast<VkQueue>( m_queue ), 14631 &checkpointDataCount, 14632 reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) ); 14633 VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); 14634 return checkpointData; 14635 } 14636 14637 //=== VK_KHR_timeline_semaphore === 14638 getCounterValueKHR() const14639 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValueKHR() const 14640 { 14641 VULKAN_HPP_ASSERT( 14642 getDispatcher()->vkGetSemaphoreCounterValueKHR && 14643 "Function <vkGetSemaphoreCounterValueKHR> needs extension <VK_KHR_timeline_semaphore> enabled!" ); 14644 14645 uint64_t value; 14646 VULKAN_HPP_NAMESPACE::Result result = 14647 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreCounterValueKHR( 14648 static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), &value ) ); 14649 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14650 { 14651 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValueKHR" ); 14652 } 14653 return value; 14654 } 14655 14656 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo,uint64_t timeout) const14657 Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const 14658 { 14659 VULKAN_HPP_ASSERT( getDispatcher()->vkWaitSemaphoresKHR && 14660 "Function <vkWaitSemaphoresKHR> needs extension <VK_KHR_timeline_semaphore> enabled!" ); 14661 14662 VULKAN_HPP_NAMESPACE::Result result = 14663 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWaitSemaphoresKHR( 14664 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) ); 14665 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 14666 ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) ) 14667 { 14668 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR" ); 14669 } 14670 return result; 14671 } 14672 14673 VULKAN_HPP_INLINE void signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo) const14674 Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const 14675 { 14676 VULKAN_HPP_ASSERT( getDispatcher()->vkSignalSemaphoreKHR && 14677 "Function <vkSignalSemaphoreKHR> needs extension <VK_KHR_timeline_semaphore> enabled!" ); 14678 14679 VULKAN_HPP_NAMESPACE::Result result = 14680 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSignalSemaphoreKHR( 14681 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) ); 14682 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14683 { 14684 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" ); 14685 } 14686 } 14687 14688 //=== VK_INTEL_performance_query === 14689 initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo) const14690 VULKAN_HPP_INLINE void Device::initializePerformanceApiINTEL( 14691 const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo ) const 14692 { 14693 VULKAN_HPP_ASSERT( 14694 getDispatcher()->vkInitializePerformanceApiINTEL && 14695 "Function <vkInitializePerformanceApiINTEL> needs extension <VK_INTEL_performance_query> enabled!" ); 14696 14697 VULKAN_HPP_NAMESPACE::Result result = 14698 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkInitializePerformanceApiINTEL( 14699 static_cast<VkDevice>( m_device ), 14700 reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) ); 14701 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14702 { 14703 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" ); 14704 } 14705 } 14706 uninitializePerformanceApiINTEL() const14707 VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT 14708 { 14709 VULKAN_HPP_ASSERT( 14710 getDispatcher()->vkUninitializePerformanceApiINTEL && 14711 "Function <vkUninitializePerformanceApiINTEL> needs extension <VK_INTEL_performance_query> enabled!" ); 14712 14713 getDispatcher()->vkUninitializePerformanceApiINTEL( static_cast<VkDevice>( m_device ) ); 14714 } 14715 setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo) const14716 VULKAN_HPP_INLINE void CommandBuffer::setPerformanceMarkerINTEL( 14717 const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo ) const 14718 { 14719 VULKAN_HPP_ASSERT( 14720 getDispatcher()->vkCmdSetPerformanceMarkerINTEL && 14721 "Function <vkCmdSetPerformanceMarkerINTEL> needs extension <VK_INTEL_performance_query> enabled!" ); 14722 14723 VULKAN_HPP_NAMESPACE::Result result = 14724 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceMarkerINTEL( 14725 static_cast<VkCommandBuffer>( m_commandBuffer ), 14726 reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) ); 14727 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14728 { 14729 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" ); 14730 } 14731 } 14732 setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo) const14733 VULKAN_HPP_INLINE void CommandBuffer::setPerformanceStreamMarkerINTEL( 14734 const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo ) const 14735 { 14736 VULKAN_HPP_ASSERT( 14737 getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL && 14738 "Function <vkCmdSetPerformanceStreamMarkerINTEL> needs extension <VK_INTEL_performance_query> enabled!" ); 14739 14740 VULKAN_HPP_NAMESPACE::Result result = 14741 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL( 14742 static_cast<VkCommandBuffer>( m_commandBuffer ), 14743 reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) ); 14744 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14745 { 14746 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" ); 14747 } 14748 } 14749 setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo) const14750 VULKAN_HPP_INLINE void CommandBuffer::setPerformanceOverrideINTEL( 14751 const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo ) const 14752 { 14753 VULKAN_HPP_ASSERT( 14754 getDispatcher()->vkCmdSetPerformanceOverrideINTEL && 14755 "Function <vkCmdSetPerformanceOverrideINTEL> needs extension <VK_INTEL_performance_query> enabled!" ); 14756 14757 VULKAN_HPP_NAMESPACE::Result result = 14758 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceOverrideINTEL( 14759 static_cast<VkCommandBuffer>( m_commandBuffer ), 14760 reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) ); 14761 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14762 { 14763 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" ); 14764 } 14765 } 14766 14767 VULKAN_HPP_INLINE void setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration) const14768 Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const 14769 { 14770 VULKAN_HPP_ASSERT( 14771 getDispatcher()->vkQueueSetPerformanceConfigurationINTEL && 14772 "Function <vkQueueSetPerformanceConfigurationINTEL> needs extension <VK_INTEL_performance_query> enabled!" ); 14773 14774 VULKAN_HPP_NAMESPACE::Result result = 14775 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL( 14776 static_cast<VkQueue>( m_queue ), static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) ); 14777 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14778 { 14779 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" ); 14780 } 14781 } 14782 14783 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PerformanceValueINTEL getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter) const14784 Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const 14785 { 14786 VULKAN_HPP_ASSERT( 14787 getDispatcher()->vkGetPerformanceParameterINTEL && 14788 "Function <vkGetPerformanceParameterINTEL> needs extension <VK_INTEL_performance_query> enabled!" ); 14789 14790 VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value; 14791 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14792 getDispatcher()->vkGetPerformanceParameterINTEL( static_cast<VkDevice>( m_device ), 14793 static_cast<VkPerformanceParameterTypeINTEL>( parameter ), 14794 reinterpret_cast<VkPerformanceValueINTEL *>( &value ) ) ); 14795 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14796 { 14797 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" ); 14798 } 14799 return value; 14800 } 14801 14802 //=== VK_AMD_display_native_hdr === 14803 14804 VULKAN_HPP_INLINE void setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable) const14805 SwapchainKHR::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT 14806 { 14807 VULKAN_HPP_ASSERT( getDispatcher()->vkSetLocalDimmingAMD && 14808 "Function <vkSetLocalDimmingAMD> needs extension <VK_AMD_display_native_hdr> enabled!" ); 14809 14810 getDispatcher()->vkSetLocalDimmingAMD( static_cast<VkDevice>( m_device ), 14811 static_cast<VkSwapchainKHR>( m_swapchainKHR ), 14812 static_cast<VkBool32>( localDimmingEnable ) ); 14813 } 14814 14815 //=== VK_KHR_fragment_shading_rate === 14816 14817 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> getFragmentShadingRatesKHR() const14818 PhysicalDevice::getFragmentShadingRatesKHR() const 14819 { 14820 VULKAN_HPP_ASSERT( 14821 getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR && 14822 "Function <vkGetPhysicalDeviceFragmentShadingRatesKHR> needs extension <VK_KHR_fragment_shading_rate> enabled!" ); 14823 14824 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> fragmentShadingRates; 14825 uint32_t fragmentShadingRateCount; 14826 VULKAN_HPP_NAMESPACE::Result result; 14827 do 14828 { 14829 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR( 14830 static_cast<VkPhysicalDevice>( m_physicalDevice ), &fragmentShadingRateCount, nullptr ) ); 14831 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && fragmentShadingRateCount ) 14832 { 14833 fragmentShadingRates.resize( fragmentShadingRateCount ); 14834 result = 14835 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR( 14836 static_cast<VkPhysicalDevice>( m_physicalDevice ), 14837 &fragmentShadingRateCount, 14838 reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) ); 14839 VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); 14840 } 14841 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 14842 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 14843 ( fragmentShadingRateCount < fragmentShadingRates.size() ) ) 14844 { 14845 fragmentShadingRates.resize( fragmentShadingRateCount ); 14846 } 14847 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14848 { 14849 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" ); 14850 } 14851 return fragmentShadingRates; 14852 } 14853 setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D & fragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2]) const14854 VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( 14855 const VULKAN_HPP_NAMESPACE::Extent2D & fragmentSize, 14856 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT 14857 { 14858 VULKAN_HPP_ASSERT( 14859 getDispatcher()->vkCmdSetFragmentShadingRateKHR && 14860 "Function <vkCmdSetFragmentShadingRateKHR> needs extension <VK_KHR_fragment_shading_rate> enabled!" ); 14861 14862 getDispatcher()->vkCmdSetFragmentShadingRateKHR( 14863 static_cast<VkCommandBuffer>( m_commandBuffer ), 14864 reinterpret_cast<const VkExtent2D *>( &fragmentSize ), 14865 reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) ); 14866 } 14867 14868 //=== VK_EXT_buffer_device_address === 14869 getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const14870 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress Device::getBufferAddressEXT( 14871 const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 14872 { 14873 VULKAN_HPP_ASSERT( 14874 getDispatcher()->vkGetBufferDeviceAddressEXT && 14875 "Function <vkGetBufferDeviceAddressEXT> needs extension <VK_EXT_buffer_device_address> enabled!" ); 14876 14877 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( getDispatcher()->vkGetBufferDeviceAddressEXT( 14878 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ) ); 14879 } 14880 14881 //=== VK_EXT_tooling_info === 14882 14883 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT> getToolPropertiesEXT() const14884 PhysicalDevice::getToolPropertiesEXT() const 14885 { 14886 VULKAN_HPP_ASSERT( 14887 getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT && 14888 "Function <vkGetPhysicalDeviceToolPropertiesEXT> needs extension <VK_EXT_tooling_info> enabled!" ); 14889 14890 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT> toolProperties; 14891 uint32_t toolCount; 14892 VULKAN_HPP_NAMESPACE::Result result; 14893 do 14894 { 14895 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT( 14896 static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, nullptr ) ); 14897 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount ) 14898 { 14899 toolProperties.resize( toolCount ); 14900 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT( 14901 static_cast<VkPhysicalDevice>( m_physicalDevice ), 14902 &toolCount, 14903 reinterpret_cast<VkPhysicalDeviceToolPropertiesEXT *>( toolProperties.data() ) ) ); 14904 VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); 14905 } 14906 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 14907 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( toolCount < toolProperties.size() ) ) 14908 { 14909 toolProperties.resize( toolCount ); 14910 } 14911 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14912 { 14913 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" ); 14914 } 14915 return toolProperties; 14916 } 14917 14918 //=== VK_KHR_present_wait === 14919 14920 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result waitForPresent(uint64_t presentId,uint64_t timeout) const14921 SwapchainKHR::waitForPresent( uint64_t presentId, uint64_t timeout ) const 14922 { 14923 VULKAN_HPP_ASSERT( getDispatcher()->vkWaitForPresentKHR && 14924 "Function <vkWaitForPresentKHR> needs extension <VK_KHR_present_wait> enabled!" ); 14925 14926 VULKAN_HPP_NAMESPACE::Result result = 14927 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWaitForPresentKHR( 14928 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchainKHR ), presentId, timeout ) ); 14929 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 14930 ( result != VULKAN_HPP_NAMESPACE::Result::eTimeout ) ) 14931 { 14932 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::waitForPresent" ); 14933 } 14934 return result; 14935 } 14936 14937 //=== VK_NV_cooperative_matrix === 14938 14939 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> getCooperativeMatrixPropertiesNV() const14940 PhysicalDevice::getCooperativeMatrixPropertiesNV() const 14941 { 14942 VULKAN_HPP_ASSERT( 14943 getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV && 14944 "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesNV> needs extension <VK_NV_cooperative_matrix> enabled!" ); 14945 14946 std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> properties; 14947 uint32_t propertyCount; 14948 VULKAN_HPP_NAMESPACE::Result result; 14949 do 14950 { 14951 result = 14952 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( 14953 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 14954 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 14955 { 14956 properties.resize( propertyCount ); 14957 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14958 getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( 14959 static_cast<VkPhysicalDevice>( m_physicalDevice ), 14960 &propertyCount, 14961 reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) ); 14962 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 14963 } 14964 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 14965 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( propertyCount < properties.size() ) ) 14966 { 14967 properties.resize( propertyCount ); 14968 } 14969 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14970 { 14971 throwResultException( result, 14972 VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); 14973 } 14974 return properties; 14975 } 14976 14977 //=== VK_NV_coverage_reduction_mode === 14978 14979 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> getSupportedFramebufferMixedSamplesCombinationsNV() const14980 PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV() const 14981 { 14982 VULKAN_HPP_ASSERT( 14983 getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV && 14984 "Function <vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV> needs extension <VK_NV_coverage_reduction_mode> enabled!" ); 14985 14986 std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> combinations; 14987 uint32_t combinationCount; 14988 VULKAN_HPP_NAMESPACE::Result result; 14989 do 14990 { 14991 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14992 getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( 14993 static_cast<VkPhysicalDevice>( m_physicalDevice ), &combinationCount, nullptr ) ); 14994 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && combinationCount ) 14995 { 14996 combinations.resize( combinationCount ); 14997 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14998 getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( 14999 static_cast<VkPhysicalDevice>( m_physicalDevice ), 15000 &combinationCount, 15001 reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) ); 15002 VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); 15003 } 15004 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15005 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( combinationCount < combinations.size() ) ) 15006 { 15007 combinations.resize( combinationCount ); 15008 } 15009 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15010 { 15011 throwResultException( 15012 result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); 15013 } 15014 return combinations; 15015 } 15016 15017 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 15018 //=== VK_EXT_full_screen_exclusive === 15019 15020 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const15021 PhysicalDevice::getSurfacePresentModes2EXT( 15022 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 15023 { 15024 VULKAN_HPP_ASSERT( 15025 getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT && 15026 "Function <vkGetPhysicalDeviceSurfacePresentModes2EXT> needs extension <VK_EXT_full_screen_exclusive> enabled!" ); 15027 15028 std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> presentModes; 15029 uint32_t presentModeCount; 15030 VULKAN_HPP_NAMESPACE::Result result; 15031 do 15032 { 15033 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( 15034 static_cast<VkPhysicalDevice>( m_physicalDevice ), 15035 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 15036 &presentModeCount, 15037 nullptr ) ); 15038 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount ) 15039 { 15040 presentModes.resize( presentModeCount ); 15041 result = 15042 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( 15043 static_cast<VkPhysicalDevice>( m_physicalDevice ), 15044 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 15045 &presentModeCount, 15046 reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) ); 15047 VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); 15048 } 15049 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15050 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) 15051 { 15052 presentModes.resize( presentModeCount ); 15053 } 15054 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15055 { 15056 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" ); 15057 } 15058 return presentModes; 15059 } 15060 acquireFullScreenExclusiveModeEXT() const15061 VULKAN_HPP_INLINE void SwapchainKHR::acquireFullScreenExclusiveModeEXT() const 15062 { 15063 VULKAN_HPP_ASSERT( 15064 getDispatcher()->vkAcquireFullScreenExclusiveModeEXT && 15065 "Function <vkAcquireFullScreenExclusiveModeEXT> needs extension <VK_EXT_full_screen_exclusive> enabled!" ); 15066 15067 VULKAN_HPP_NAMESPACE::Result result = 15068 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireFullScreenExclusiveModeEXT( 15069 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchainKHR ) ) ); 15070 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15071 { 15072 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireFullScreenExclusiveModeEXT" ); 15073 } 15074 } 15075 releaseFullScreenExclusiveModeEXT() const15076 VULKAN_HPP_INLINE void SwapchainKHR::releaseFullScreenExclusiveModeEXT() const 15077 { 15078 VULKAN_HPP_ASSERT( 15079 getDispatcher()->vkReleaseFullScreenExclusiveModeEXT && 15080 "Function <vkReleaseFullScreenExclusiveModeEXT> needs extension <VK_EXT_full_screen_exclusive> enabled!" ); 15081 15082 VULKAN_HPP_NAMESPACE::Result result = 15083 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkReleaseFullScreenExclusiveModeEXT( 15084 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchainKHR ) ) ); 15085 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15086 { 15087 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::releaseFullScreenExclusiveModeEXT" ); 15088 } 15089 } 15090 15091 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const15092 Device::getGroupSurfacePresentModes2EXT( 15093 const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 15094 { 15095 VULKAN_HPP_ASSERT( 15096 getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT && 15097 "Function <vkGetDeviceGroupSurfacePresentModes2EXT> needs extension <VK_EXT_full_screen_exclusive> enabled!" ); 15098 15099 VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; 15100 VULKAN_HPP_NAMESPACE::Result result = 15101 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT( 15102 static_cast<VkDevice>( m_device ), 15103 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 15104 reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) ); 15105 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15106 { 15107 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" ); 15108 } 15109 return modes; 15110 } 15111 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 15112 15113 //=== VK_KHR_buffer_device_address === 15114 getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const15115 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress Device::getBufferAddressKHR( 15116 const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 15117 { 15118 VULKAN_HPP_ASSERT( 15119 getDispatcher()->vkGetBufferDeviceAddressKHR && 15120 "Function <vkGetBufferDeviceAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!" ); 15121 15122 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( getDispatcher()->vkGetBufferDeviceAddressKHR( 15123 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ) ); 15124 } 15125 getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const15126 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( 15127 const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 15128 { 15129 VULKAN_HPP_ASSERT( 15130 getDispatcher()->vkGetBufferOpaqueCaptureAddressKHR && 15131 "Function <vkGetBufferOpaqueCaptureAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!" ); 15132 15133 return getDispatcher()->vkGetBufferOpaqueCaptureAddressKHR( 15134 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ); 15135 } 15136 getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info) const15137 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( 15138 const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 15139 { 15140 VULKAN_HPP_ASSERT( 15141 getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddressKHR && 15142 "Function <vkGetDeviceMemoryOpaqueCaptureAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!" ); 15143 15144 return getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddressKHR( 15145 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) ); 15146 } 15147 15148 //=== VK_EXT_line_rasterization === 15149 setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern) const15150 VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, 15151 uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT 15152 { 15153 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleEXT && 15154 "Function <vkCmdSetLineStippleEXT> needs extension <VK_EXT_line_rasterization> enabled!" ); 15155 15156 getDispatcher()->vkCmdSetLineStippleEXT( 15157 static_cast<VkCommandBuffer>( m_commandBuffer ), lineStippleFactor, lineStipplePattern ); 15158 } 15159 15160 //=== VK_EXT_host_query_reset === 15161 resetEXT(uint32_t firstQuery,uint32_t queryCount) const15162 VULKAN_HPP_INLINE void QueryPool::resetEXT( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT 15163 { 15164 VULKAN_HPP_ASSERT( getDispatcher()->vkResetQueryPoolEXT && 15165 "Function <vkResetQueryPoolEXT> needs extension <VK_EXT_host_query_reset> enabled!" ); 15166 15167 getDispatcher()->vkResetQueryPoolEXT( 15168 static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( m_queryPool ), firstQuery, queryCount ); 15169 } 15170 15171 //=== VK_EXT_extended_dynamic_state === 15172 15173 VULKAN_HPP_INLINE void setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode) const15174 CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT 15175 { 15176 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCullModeEXT && 15177 "Function <vkCmdSetCullModeEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15178 15179 getDispatcher()->vkCmdSetCullModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15180 static_cast<VkCullModeFlags>( cullMode ) ); 15181 } 15182 15183 VULKAN_HPP_INLINE void setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace) const15184 CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT 15185 { 15186 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFrontFaceEXT && 15187 "Function <vkCmdSetFrontFaceEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15188 15189 getDispatcher()->vkCmdSetFrontFaceEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15190 static_cast<VkFrontFace>( frontFace ) ); 15191 } 15192 setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology) const15193 VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( 15194 VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT 15195 { 15196 VULKAN_HPP_ASSERT( 15197 getDispatcher()->vkCmdSetPrimitiveTopologyEXT && 15198 "Function <vkCmdSetPrimitiveTopologyEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15199 15200 getDispatcher()->vkCmdSetPrimitiveTopologyEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15201 static_cast<VkPrimitiveTopology>( primitiveTopology ) ); 15202 } 15203 setViewportWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports) const15204 VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( 15205 ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT 15206 { 15207 VULKAN_HPP_ASSERT( 15208 getDispatcher()->vkCmdSetViewportWithCountEXT && 15209 "Function <vkCmdSetViewportWithCountEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15210 15211 getDispatcher()->vkCmdSetViewportWithCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15212 viewports.size(), 15213 reinterpret_cast<const VkViewport *>( viewports.data() ) ); 15214 } 15215 setScissorWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors) const15216 VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( 15217 ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT 15218 { 15219 VULKAN_HPP_ASSERT( 15220 getDispatcher()->vkCmdSetScissorWithCountEXT && 15221 "Function <vkCmdSetScissorWithCountEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15222 15223 getDispatcher()->vkCmdSetScissorWithCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15224 scissors.size(), 15225 reinterpret_cast<const VkRect2D *>( scissors.data() ) ); 15226 } 15227 bindVertexBuffers2EXT(uint32_t firstBinding,ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides) const15228 VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( 15229 uint32_t firstBinding, 15230 ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 15231 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 15232 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes, 15233 ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 15234 { 15235 VULKAN_HPP_ASSERT( 15236 getDispatcher()->vkCmdBindVertexBuffers2EXT && 15237 "Function <vkCmdBindVertexBuffers2EXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15238 15239 # ifdef VULKAN_HPP_NO_EXCEPTIONS 15240 VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); 15241 VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); 15242 VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() ); 15243 # else 15244 if ( buffers.size() != offsets.size() ) 15245 { 15246 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 15247 "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" ); 15248 } 15249 if ( !sizes.empty() && buffers.size() != sizes.size() ) 15250 { 15251 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 15252 "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" ); 15253 } 15254 if ( !strides.empty() && buffers.size() != strides.size() ) 15255 { 15256 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 15257 "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" ); 15258 } 15259 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 15260 15261 getDispatcher()->vkCmdBindVertexBuffers2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15262 firstBinding, 15263 buffers.size(), 15264 reinterpret_cast<const VkBuffer *>( buffers.data() ), 15265 reinterpret_cast<const VkDeviceSize *>( offsets.data() ), 15266 reinterpret_cast<const VkDeviceSize *>( sizes.data() ), 15267 reinterpret_cast<const VkDeviceSize *>( strides.data() ) ); 15268 } 15269 15270 VULKAN_HPP_INLINE void setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable) const15271 CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT 15272 { 15273 VULKAN_HPP_ASSERT( 15274 getDispatcher()->vkCmdSetDepthTestEnableEXT && 15275 "Function <vkCmdSetDepthTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15276 15277 getDispatcher()->vkCmdSetDepthTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15278 static_cast<VkBool32>( depthTestEnable ) ); 15279 } 15280 15281 VULKAN_HPP_INLINE void setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable) const15282 CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT 15283 { 15284 VULKAN_HPP_ASSERT( 15285 getDispatcher()->vkCmdSetDepthWriteEnableEXT && 15286 "Function <vkCmdSetDepthWriteEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15287 15288 getDispatcher()->vkCmdSetDepthWriteEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15289 static_cast<VkBool32>( depthWriteEnable ) ); 15290 } 15291 15292 VULKAN_HPP_INLINE void setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp) const15293 CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT 15294 { 15295 VULKAN_HPP_ASSERT( 15296 getDispatcher()->vkCmdSetDepthCompareOpEXT && 15297 "Function <vkCmdSetDepthCompareOpEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15298 15299 getDispatcher()->vkCmdSetDepthCompareOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15300 static_cast<VkCompareOp>( depthCompareOp ) ); 15301 } 15302 setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable) const15303 VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( 15304 VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT 15305 { 15306 VULKAN_HPP_ASSERT( 15307 getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT && 15308 "Function <vkCmdSetDepthBoundsTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15309 15310 getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15311 static_cast<VkBool32>( depthBoundsTestEnable ) ); 15312 } 15313 15314 VULKAN_HPP_INLINE void setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable) const15315 CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT 15316 { 15317 VULKAN_HPP_ASSERT( 15318 getDispatcher()->vkCmdSetStencilTestEnableEXT && 15319 "Function <vkCmdSetStencilTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15320 15321 getDispatcher()->vkCmdSetStencilTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15322 static_cast<VkBool32>( stencilTestEnable ) ); 15323 } 15324 15325 VULKAN_HPP_INLINE void 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) const15326 CommandBuffer::setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 15327 VULKAN_HPP_NAMESPACE::StencilOp failOp, 15328 VULKAN_HPP_NAMESPACE::StencilOp passOp, 15329 VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, 15330 VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT 15331 { 15332 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilOpEXT && 15333 "Function <vkCmdSetStencilOpEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!" ); 15334 15335 getDispatcher()->vkCmdSetStencilOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15336 static_cast<VkStencilFaceFlags>( faceMask ), 15337 static_cast<VkStencilOp>( failOp ), 15338 static_cast<VkStencilOp>( passOp ), 15339 static_cast<VkStencilOp>( depthFailOp ), 15340 static_cast<VkCompareOp>( compareOp ) ); 15341 } 15342 15343 //=== VK_KHR_deferred_host_operations === 15344 getMaxConcurrency() const15345 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t DeferredOperationKHR::getMaxConcurrency() const VULKAN_HPP_NOEXCEPT 15346 { 15347 VULKAN_HPP_ASSERT( 15348 getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR && 15349 "Function <vkGetDeferredOperationMaxConcurrencyKHR> needs extension <VK_KHR_deferred_host_operations> enabled!" ); 15350 15351 return getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR( 15352 static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_deferredOperationKHR ) ); 15353 } 15354 15355 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result getResult() const15356 DeferredOperationKHR::getResult() const VULKAN_HPP_NOEXCEPT 15357 { 15358 VULKAN_HPP_ASSERT( 15359 getDispatcher()->vkGetDeferredOperationResultKHR && 15360 "Function <vkGetDeferredOperationResultKHR> needs extension <VK_KHR_deferred_host_operations> enabled!" ); 15361 15362 return static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeferredOperationResultKHR( 15363 static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_deferredOperationKHR ) ) ); 15364 } 15365 join() const15366 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::join() const 15367 { 15368 VULKAN_HPP_ASSERT( 15369 getDispatcher()->vkDeferredOperationJoinKHR && 15370 "Function <vkDeferredOperationJoinKHR> needs extension <VK_KHR_deferred_host_operations> enabled!" ); 15371 15372 VULKAN_HPP_NAMESPACE::Result result = 15373 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDeferredOperationJoinKHR( 15374 static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_deferredOperationKHR ) ) ); 15375 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 15376 ( result != VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR ) && 15377 ( result != VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR ) ) 15378 { 15379 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DeferredOperationKHR::join" ); 15380 } 15381 return result; 15382 } 15383 15384 //=== VK_KHR_pipeline_executable_properties === 15385 15386 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR> getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo) const15387 Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo ) const 15388 { 15389 VULKAN_HPP_ASSERT( 15390 getDispatcher()->vkGetPipelineExecutablePropertiesKHR && 15391 "Function <vkGetPipelineExecutablePropertiesKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!" ); 15392 15393 std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR> properties; 15394 uint32_t executableCount; 15395 VULKAN_HPP_NAMESPACE::Result result; 15396 do 15397 { 15398 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutablePropertiesKHR( 15399 static_cast<VkDevice>( m_device ), 15400 reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), 15401 &executableCount, 15402 nullptr ) ); 15403 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && executableCount ) 15404 { 15405 properties.resize( executableCount ); 15406 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutablePropertiesKHR( 15407 static_cast<VkDevice>( m_device ), 15408 reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), 15409 &executableCount, 15410 reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) ); 15411 VULKAN_HPP_ASSERT( executableCount <= properties.size() ); 15412 } 15413 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15414 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( executableCount < properties.size() ) ) 15415 { 15416 properties.resize( executableCount ); 15417 } 15418 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15419 { 15420 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" ); 15421 } 15422 return properties; 15423 } 15424 15425 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR> getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo) const15426 Device::getPipelineExecutableStatisticsKHR( 15427 const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const 15428 { 15429 VULKAN_HPP_ASSERT( 15430 getDispatcher()->vkGetPipelineExecutableStatisticsKHR && 15431 "Function <vkGetPipelineExecutableStatisticsKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!" ); 15432 15433 std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR> statistics; 15434 uint32_t statisticCount; 15435 VULKAN_HPP_NAMESPACE::Result result; 15436 do 15437 { 15438 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutableStatisticsKHR( 15439 static_cast<VkDevice>( m_device ), 15440 reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), 15441 &statisticCount, 15442 nullptr ) ); 15443 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && statisticCount ) 15444 { 15445 statistics.resize( statisticCount ); 15446 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutableStatisticsKHR( 15447 static_cast<VkDevice>( m_device ), 15448 reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), 15449 &statisticCount, 15450 reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) ); 15451 VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); 15452 } 15453 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15454 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( statisticCount < statistics.size() ) ) 15455 { 15456 statistics.resize( statisticCount ); 15457 } 15458 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15459 { 15460 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" ); 15461 } 15462 return statistics; 15463 } 15464 15465 VULKAN_HPP_NODISCARD 15466 VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR> getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo) const15467 Device::getPipelineExecutableInternalRepresentationsKHR( 15468 const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const 15469 { 15470 VULKAN_HPP_ASSERT( 15471 getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR && 15472 "Function <vkGetPipelineExecutableInternalRepresentationsKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!" ); 15473 15474 std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR> internalRepresentations; 15475 uint32_t internalRepresentationCount; 15476 VULKAN_HPP_NAMESPACE::Result result; 15477 do 15478 { 15479 result = 15480 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR( 15481 static_cast<VkDevice>( m_device ), 15482 reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), 15483 &internalRepresentationCount, 15484 nullptr ) ); 15485 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && internalRepresentationCount ) 15486 { 15487 internalRepresentations.resize( internalRepresentationCount ); 15488 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15489 getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR( 15490 static_cast<VkDevice>( m_device ), 15491 reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), 15492 &internalRepresentationCount, 15493 reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) ); 15494 VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); 15495 } 15496 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15497 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 15498 ( internalRepresentationCount < internalRepresentations.size() ) ) 15499 { 15500 internalRepresentations.resize( internalRepresentationCount ); 15501 } 15502 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15503 { 15504 throwResultException( result, 15505 VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" ); 15506 } 15507 return internalRepresentations; 15508 } 15509 15510 //=== VK_NV_device_generated_commands === 15511 15512 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info) const15513 Device::getGeneratedCommandsMemoryRequirementsNV( 15514 const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT 15515 { 15516 VULKAN_HPP_ASSERT( 15517 getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV && 15518 "Function <vkGetGeneratedCommandsMemoryRequirementsNV> needs extension <VK_NV_device_generated_commands> enabled!" ); 15519 15520 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 15521 getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( 15522 static_cast<VkDevice>( m_device ), 15523 reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), 15524 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 15525 return memoryRequirements; 15526 } 15527 15528 template <typename X, typename Y, typename... Z> getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info) const15529 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getGeneratedCommandsMemoryRequirementsNV( 15530 const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT 15531 { 15532 VULKAN_HPP_ASSERT( 15533 getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV && 15534 "Function <vkGetGeneratedCommandsMemoryRequirementsNV> needs extension <VK_NV_device_generated_commands> enabled!" ); 15535 15536 StructureChain<X, Y, Z...> structureChain; 15537 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = 15538 structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 15539 getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( 15540 static_cast<VkDevice>( m_device ), 15541 reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), 15542 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 15543 return structureChain; 15544 } 15545 preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo) const15546 VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( 15547 const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT 15548 { 15549 VULKAN_HPP_ASSERT( 15550 getDispatcher()->vkCmdPreprocessGeneratedCommandsNV && 15551 "Function <vkCmdPreprocessGeneratedCommandsNV> needs extension <VK_NV_device_generated_commands> enabled!" ); 15552 15553 getDispatcher()->vkCmdPreprocessGeneratedCommandsNV( 15554 static_cast<VkCommandBuffer>( m_commandBuffer ), 15555 reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) ); 15556 } 15557 executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo) const15558 VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( 15559 VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, 15560 const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT 15561 { 15562 VULKAN_HPP_ASSERT( 15563 getDispatcher()->vkCmdExecuteGeneratedCommandsNV && 15564 "Function <vkCmdExecuteGeneratedCommandsNV> needs extension <VK_NV_device_generated_commands> enabled!" ); 15565 15566 getDispatcher()->vkCmdExecuteGeneratedCommandsNV( 15567 static_cast<VkCommandBuffer>( m_commandBuffer ), 15568 static_cast<VkBool32>( isPreprocessed ), 15569 reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) ); 15570 } 15571 15572 VULKAN_HPP_INLINE void bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex) const15573 CommandBuffer::bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 15574 VULKAN_HPP_NAMESPACE::Pipeline pipeline, 15575 uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT 15576 { 15577 VULKAN_HPP_ASSERT( 15578 getDispatcher()->vkCmdBindPipelineShaderGroupNV && 15579 "Function <vkCmdBindPipelineShaderGroupNV> needs extension <VK_NV_device_generated_commands> enabled!" ); 15580 15581 getDispatcher()->vkCmdBindPipelineShaderGroupNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 15582 static_cast<VkPipelineBindPoint>( pipelineBindPoint ), 15583 static_cast<VkPipeline>( pipeline ), 15584 groupIndex ); 15585 } 15586 15587 //=== VK_EXT_acquire_drm_display === 15588 acquireDrmDisplayEXT(int32_t drmFd,VULKAN_HPP_NAMESPACE::DisplayKHR display) const15589 VULKAN_HPP_INLINE void PhysicalDevice::acquireDrmDisplayEXT( int32_t drmFd, 15590 VULKAN_HPP_NAMESPACE::DisplayKHR display ) const 15591 { 15592 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireDrmDisplayEXT && 15593 "Function <vkAcquireDrmDisplayEXT> needs extension <VK_EXT_acquire_drm_display> enabled!" ); 15594 15595 VULKAN_HPP_NAMESPACE::Result result = 15596 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireDrmDisplayEXT( 15597 static_cast<VkPhysicalDevice>( m_physicalDevice ), drmFd, static_cast<VkDisplayKHR>( display ) ) ); 15598 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15599 { 15600 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" ); 15601 } 15602 } 15603 15604 //=== VK_EXT_private_data === 15605 setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot,uint64_t data) const15606 VULKAN_HPP_INLINE void Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 15607 uint64_t objectHandle, 15608 VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, 15609 uint64_t data ) const 15610 { 15611 VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateDataEXT && 15612 "Function <vkSetPrivateDataEXT> needs extension <VK_EXT_private_data> enabled!" ); 15613 15614 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15615 getDispatcher()->vkSetPrivateDataEXT( static_cast<VkDevice>( m_device ), 15616 static_cast<VkObjectType>( objectType_ ), 15617 objectHandle, 15618 static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), 15619 data ) ); 15620 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15621 { 15622 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" ); 15623 } 15624 } 15625 15626 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot) const15627 Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 15628 uint64_t objectHandle, 15629 VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot ) const VULKAN_HPP_NOEXCEPT 15630 { 15631 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPrivateDataEXT && 15632 "Function <vkGetPrivateDataEXT> needs extension <VK_EXT_private_data> enabled!" ); 15633 15634 uint64_t data; 15635 getDispatcher()->vkGetPrivateDataEXT( static_cast<VkDevice>( m_device ), 15636 static_cast<VkObjectType>( objectType_ ), 15637 objectHandle, 15638 static_cast<VkPrivateDataSlotEXT>( privateDataSlot ), 15639 &data ); 15640 return data; 15641 } 15642 15643 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 15644 //=== VK_KHR_video_encode_queue === 15645 encodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo) const15646 VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( 15647 const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo ) const VULKAN_HPP_NOEXCEPT 15648 { 15649 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEncodeVideoKHR && 15650 "Function <vkCmdEncodeVideoKHR> needs extension <VK_KHR_video_encode_queue> enabled!" ); 15651 15652 getDispatcher()->vkCmdEncodeVideoKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15653 reinterpret_cast<const VkVideoEncodeInfoKHR *>( &encodeInfo ) ); 15654 } 15655 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 15656 15657 //=== VK_KHR_synchronization2 === 15658 setEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::DependencyInfoKHR & dependencyInfo) const15659 VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( 15660 VULKAN_HPP_NAMESPACE::Event event, 15661 const VULKAN_HPP_NAMESPACE::DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT 15662 { 15663 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent2KHR && 15664 "Function <vkCmdSetEvent2KHR> needs extension <VK_KHR_synchronization2> enabled!" ); 15665 15666 getDispatcher()->vkCmdSetEvent2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15667 static_cast<VkEvent>( event ), 15668 reinterpret_cast<const VkDependencyInfoKHR *>( &dependencyInfo ) ); 15669 } 15670 15671 VULKAN_HPP_INLINE void resetEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask) const15672 CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, 15673 VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stageMask ) const VULKAN_HPP_NOEXCEPT 15674 { 15675 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent2KHR && 15676 "Function <vkCmdResetEvent2KHR> needs extension <VK_KHR_synchronization2> enabled!" ); 15677 15678 getDispatcher()->vkCmdResetEvent2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15679 static_cast<VkEvent>( event ), 15680 static_cast<VkPipelineStageFlags2KHR>( stageMask ) ); 15681 } 15682 15683 VULKAN_HPP_INLINE void waitEvents2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfoKHR> const & dependencyInfos) const15684 CommandBuffer::waitEvents2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 15685 ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfoKHR> const & dependencyInfos ) 15686 const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS 15687 { 15688 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents2KHR && 15689 "Function <vkCmdWaitEvents2KHR> needs extension <VK_KHR_synchronization2> enabled!" ); 15690 15691 # ifdef VULKAN_HPP_NO_EXCEPTIONS 15692 VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() ); 15693 # else 15694 if ( events.size() != dependencyInfos.size() ) 15695 { 15696 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 15697 "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()" ); 15698 } 15699 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 15700 15701 getDispatcher()->vkCmdWaitEvents2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15702 events.size(), 15703 reinterpret_cast<const VkEvent *>( events.data() ), 15704 reinterpret_cast<const VkDependencyInfoKHR *>( dependencyInfos.data() ) ); 15705 } 15706 pipelineBarrier2KHR(const VULKAN_HPP_NAMESPACE::DependencyInfoKHR & dependencyInfo) const15707 VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( 15708 const VULKAN_HPP_NAMESPACE::DependencyInfoKHR & dependencyInfo ) const VULKAN_HPP_NOEXCEPT 15709 { 15710 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier2KHR && 15711 "Function <vkCmdPipelineBarrier2KHR> needs extension <VK_KHR_synchronization2> enabled!" ); 15712 15713 getDispatcher()->vkCmdPipelineBarrier2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15714 reinterpret_cast<const VkDependencyInfoKHR *>( &dependencyInfo ) ); 15715 } 15716 writeTimestamp2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query) const15717 VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, 15718 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 15719 uint32_t query ) const VULKAN_HPP_NOEXCEPT 15720 { 15721 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp2KHR && 15722 "Function <vkCmdWriteTimestamp2KHR> needs extension <VK_KHR_synchronization2> enabled!" ); 15723 15724 getDispatcher()->vkCmdWriteTimestamp2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15725 static_cast<VkPipelineStageFlags2KHR>( stage ), 15726 static_cast<VkQueryPool>( queryPool ), 15727 query ); 15728 } 15729 submit2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR> const & submits,VULKAN_HPP_NAMESPACE::Fence fence) const15730 VULKAN_HPP_INLINE void Queue::submit2KHR( ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2KHR> const & submits, 15731 VULKAN_HPP_NAMESPACE::Fence fence ) const 15732 { 15733 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2KHR && 15734 "Function <vkQueueSubmit2KHR> needs extension <VK_KHR_synchronization2> enabled!" ); 15735 15736 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15737 getDispatcher()->vkQueueSubmit2KHR( static_cast<VkQueue>( m_queue ), 15738 submits.size(), 15739 reinterpret_cast<const VkSubmitInfo2KHR *>( submits.data() ), 15740 static_cast<VkFence>( fence ) ) ); 15741 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15742 { 15743 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" ); 15744 } 15745 } 15746 writeBufferMarker2AMD(VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,uint32_t marker) const15747 VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2KHR stage, 15748 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 15749 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 15750 uint32_t marker ) const VULKAN_HPP_NOEXCEPT 15751 { 15752 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarker2AMD && 15753 "Function <vkCmdWriteBufferMarker2AMD> needs extension <VK_KHR_synchronization2> enabled!" ); 15754 15755 getDispatcher()->vkCmdWriteBufferMarker2AMD( static_cast<VkCommandBuffer>( m_commandBuffer ), 15756 static_cast<VkPipelineStageFlags2KHR>( stage ), 15757 static_cast<VkBuffer>( dstBuffer ), 15758 static_cast<VkDeviceSize>( dstOffset ), 15759 marker ); 15760 } 15761 15762 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> getCheckpointData2NV() const15763 Queue::getCheckpointData2NV() const VULKAN_HPP_NOEXCEPT 15764 { 15765 VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointData2NV && 15766 "Function <vkGetQueueCheckpointData2NV> needs extension <VK_KHR_synchronization2> enabled!" ); 15767 15768 uint32_t checkpointDataCount; 15769 getDispatcher()->vkGetQueueCheckpointData2NV( static_cast<VkQueue>( m_queue ), &checkpointDataCount, nullptr ); 15770 std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> checkpointData( checkpointDataCount ); 15771 getDispatcher()->vkGetQueueCheckpointData2NV( static_cast<VkQueue>( m_queue ), 15772 &checkpointDataCount, 15773 reinterpret_cast<VkCheckpointData2NV *>( checkpointData.data() ) ); 15774 VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); 15775 return checkpointData; 15776 } 15777 15778 //=== VK_NV_fragment_shading_rate_enums === 15779 setFragmentShadingRateEnumNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2]) const15780 VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateEnumNV( 15781 VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, 15782 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT 15783 { 15784 VULKAN_HPP_ASSERT( 15785 getDispatcher()->vkCmdSetFragmentShadingRateEnumNV && 15786 "Function <vkCmdSetFragmentShadingRateEnumNV> needs extension <VK_NV_fragment_shading_rate_enums> enabled!" ); 15787 15788 getDispatcher()->vkCmdSetFragmentShadingRateEnumNV( 15789 static_cast<VkCommandBuffer>( m_commandBuffer ), 15790 static_cast<VkFragmentShadingRateNV>( shadingRate ), 15791 reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) ); 15792 } 15793 15794 //=== VK_KHR_copy_commands2 === 15795 copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR & copyBufferInfo) const15796 VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( 15797 const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT 15798 { 15799 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer2KHR && 15800 "Function <vkCmdCopyBuffer2KHR> needs extension <VK_KHR_copy_commands2> enabled!" ); 15801 15802 getDispatcher()->vkCmdCopyBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15803 reinterpret_cast<const VkCopyBufferInfo2KHR *>( ©BufferInfo ) ); 15804 } 15805 copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR & copyImageInfo) const15806 VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( 15807 const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR & copyImageInfo ) const VULKAN_HPP_NOEXCEPT 15808 { 15809 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage2KHR && 15810 "Function <vkCmdCopyImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!" ); 15811 15812 getDispatcher()->vkCmdCopyImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15813 reinterpret_cast<const VkCopyImageInfo2KHR *>( ©ImageInfo ) ); 15814 } 15815 copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR & copyBufferToImageInfo) const15816 VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( 15817 const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT 15818 { 15819 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage2KHR && 15820 "Function <vkCmdCopyBufferToImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!" ); 15821 15822 getDispatcher()->vkCmdCopyBufferToImage2KHR( 15823 static_cast<VkCommandBuffer>( m_commandBuffer ), 15824 reinterpret_cast<const VkCopyBufferToImageInfo2KHR *>( ©BufferToImageInfo ) ); 15825 } 15826 copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR & copyImageToBufferInfo) const15827 VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( 15828 const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT 15829 { 15830 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer2KHR && 15831 "Function <vkCmdCopyImageToBuffer2KHR> needs extension <VK_KHR_copy_commands2> enabled!" ); 15832 15833 getDispatcher()->vkCmdCopyImageToBuffer2KHR( 15834 static_cast<VkCommandBuffer>( m_commandBuffer ), 15835 reinterpret_cast<const VkCopyImageToBufferInfo2KHR *>( ©ImageToBufferInfo ) ); 15836 } 15837 blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR & blitImageInfo) const15838 VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( 15839 const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR & blitImageInfo ) const VULKAN_HPP_NOEXCEPT 15840 { 15841 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage2KHR && 15842 "Function <vkCmdBlitImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!" ); 15843 15844 getDispatcher()->vkCmdBlitImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15845 reinterpret_cast<const VkBlitImageInfo2KHR *>( &blitImageInfo ) ); 15846 } 15847 resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR & resolveImageInfo) const15848 VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( 15849 const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT 15850 { 15851 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage2KHR && 15852 "Function <vkCmdResolveImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!" ); 15853 15854 getDispatcher()->vkCmdResolveImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15855 reinterpret_cast<const VkResolveImageInfo2KHR *>( &resolveImageInfo ) ); 15856 } 15857 15858 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 15859 //=== VK_NV_acquire_winrt_display === 15860 acquireWinrtNV() const15861 VULKAN_HPP_INLINE void DisplayKHR::acquireWinrtNV() const 15862 { 15863 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireWinrtDisplayNV && 15864 "Function <vkAcquireWinrtDisplayNV> needs extension <VK_NV_acquire_winrt_display> enabled!" ); 15865 15866 VULKAN_HPP_NAMESPACE::Result result = 15867 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireWinrtDisplayNV( 15868 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_displayKHR ) ) ); 15869 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15870 { 15871 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::acquireWinrtNV" ); 15872 } 15873 } 15874 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 15875 15876 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 15877 //=== VK_EXT_directfb_surface === 15878 15879 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB & dfb) const15880 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, 15881 IDirectFB & dfb ) const VULKAN_HPP_NOEXCEPT 15882 { 15883 VULKAN_HPP_ASSERT( 15884 getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT && 15885 "Function <vkGetPhysicalDeviceDirectFBPresentationSupportEXT> needs extension <VK_EXT_directfb_surface> enabled!" ); 15886 15887 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( 15888 getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT( 15889 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &dfb ) ); 15890 } 15891 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 15892 15893 //=== VK_KHR_ray_tracing_pipeline === 15894 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) const15895 VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( 15896 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable, 15897 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable, 15898 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable, 15899 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable, 15900 uint32_t width, 15901 uint32_t height, 15902 uint32_t depth ) const VULKAN_HPP_NOEXCEPT 15903 { 15904 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysKHR && 15905 "Function <vkCmdTraceRaysKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" ); 15906 15907 getDispatcher()->vkCmdTraceRaysKHR( 15908 static_cast<VkCommandBuffer>( m_commandBuffer ), 15909 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ), 15910 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ), 15911 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ), 15912 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ), 15913 width, 15914 height, 15915 depth ); 15916 } 15917 15918 template <typename T> 15919 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<T> getRayTracingShaderGroupHandlesKHR(uint32_t firstGroup,uint32_t groupCount,size_t dataSize) const15920 Pipeline::getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const 15921 { 15922 VULKAN_HPP_ASSERT( 15923 getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR && 15924 "Function <vkGetRayTracingShaderGroupHandlesKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" ); 15925 15926 VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); 15927 std::vector<T> data( dataSize / sizeof( T ) ); 15928 Result result = static_cast<Result>( 15929 getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ), 15930 static_cast<VkPipeline>( m_pipeline ), 15931 firstGroup, 15932 groupCount, 15933 data.size() * sizeof( T ), 15934 reinterpret_cast<void *>( data.data() ) ) ); 15935 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15936 { 15937 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesKHR" ); 15938 } 15939 return data; 15940 } 15941 15942 template <typename T> getRayTracingShaderGroupHandleKHR(uint32_t firstGroup,uint32_t groupCount) const15943 VULKAN_HPP_NODISCARD T Pipeline::getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const 15944 { 15945 T data; 15946 Result result = static_cast<Result>( 15947 getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ), 15948 static_cast<VkPipeline>( m_pipeline ), 15949 firstGroup, 15950 groupCount, 15951 sizeof( T ), 15952 reinterpret_cast<void *>( &data ) ) ); 15953 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15954 { 15955 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleKHR" ); 15956 } 15957 return data; 15958 } 15959 15960 template <typename T> getRayTracingCaptureReplayShaderGroupHandlesKHR(uint32_t firstGroup,uint32_t groupCount,size_t dataSize) const15961 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<T> Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR( 15962 uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const 15963 { 15964 VULKAN_HPP_ASSERT( 15965 getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR && 15966 "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" ); 15967 15968 VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); 15969 std::vector<T> data( dataSize / sizeof( T ) ); 15970 Result result = static_cast<Result>( 15971 getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ), 15972 static_cast<VkPipeline>( m_pipeline ), 15973 firstGroup, 15974 groupCount, 15975 data.size() * sizeof( T ), 15976 reinterpret_cast<void *>( data.data() ) ) ); 15977 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15978 { 15979 throwResultException( 15980 result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); 15981 } 15982 return data; 15983 } 15984 15985 template <typename T> getRayTracingCaptureReplayShaderGroupHandleKHR(uint32_t firstGroup,uint32_t groupCount) const15986 VULKAN_HPP_NODISCARD T Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, 15987 uint32_t groupCount ) const 15988 { 15989 T data; 15990 Result result = static_cast<Result>( 15991 getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ), 15992 static_cast<VkPipeline>( m_pipeline ), 15993 firstGroup, 15994 groupCount, 15995 sizeof( T ), 15996 reinterpret_cast<void *>( &data ) ) ); 15997 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15998 { 15999 throwResultException( 16000 result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR" ); 16001 } 16002 return data; 16003 } 16004 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) const16005 VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( 16006 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable, 16007 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable, 16008 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable, 16009 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable, 16010 VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT 16011 { 16012 VULKAN_HPP_ASSERT( 16013 getDispatcher()->vkCmdTraceRaysIndirectKHR && 16014 "Function <vkCmdTraceRaysIndirectKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" ); 16015 16016 getDispatcher()->vkCmdTraceRaysIndirectKHR( 16017 static_cast<VkCommandBuffer>( m_commandBuffer ), 16018 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ), 16019 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ), 16020 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ), 16021 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ), 16022 static_cast<VkDeviceAddress>( indirectDeviceAddress ) ); 16023 } 16024 16025 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize getRayTracingShaderGroupStackSizeKHR(uint32_t group,VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader) const16026 Pipeline::getRayTracingShaderGroupStackSizeKHR( 16027 uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT 16028 { 16029 VULKAN_HPP_ASSERT( 16030 getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR && 16031 "Function <vkGetRayTracingShaderGroupStackSizeKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" ); 16032 16033 return static_cast<VULKAN_HPP_NAMESPACE::DeviceSize>( 16034 getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR( static_cast<VkDevice>( m_device ), 16035 static_cast<VkPipeline>( m_pipeline ), 16036 group, 16037 static_cast<VkShaderGroupShaderKHR>( groupShader ) ) ); 16038 } 16039 16040 VULKAN_HPP_INLINE void setRayTracingPipelineStackSizeKHR(uint32_t pipelineStackSize) const16041 CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT 16042 { 16043 VULKAN_HPP_ASSERT( 16044 getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR && 16045 "Function <vkCmdSetRayTracingPipelineStackSizeKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!" ); 16046 16047 getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 16048 pipelineStackSize ); 16049 } 16050 16051 //=== VK_EXT_vertex_input_dynamic_state === 16052 setVertexInputEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const & vertexBindingDescriptions,ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & vertexAttributeDescriptions) const16053 VULKAN_HPP_INLINE void CommandBuffer::setVertexInputEXT( 16054 ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const & vertexBindingDescriptions, 16055 ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & vertexAttributeDescriptions ) 16056 const VULKAN_HPP_NOEXCEPT 16057 { 16058 VULKAN_HPP_ASSERT( 16059 getDispatcher()->vkCmdSetVertexInputEXT && 16060 "Function <vkCmdSetVertexInputEXT> needs extension <VK_EXT_vertex_input_dynamic_state> enabled!" ); 16061 16062 getDispatcher()->vkCmdSetVertexInputEXT( 16063 static_cast<VkCommandBuffer>( m_commandBuffer ), 16064 vertexBindingDescriptions.size(), 16065 reinterpret_cast<const VkVertexInputBindingDescription2EXT *>( vertexBindingDescriptions.data() ), 16066 vertexAttributeDescriptions.size(), 16067 reinterpret_cast<const VkVertexInputAttributeDescription2EXT *>( vertexAttributeDescriptions.data() ) ); 16068 } 16069 16070 # if defined( VK_USE_PLATFORM_FUCHSIA ) 16071 //=== VK_FUCHSIA_external_memory === 16072 getMemoryZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo) const16073 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t Device::getMemoryZirconHandleFUCHSIA( 16074 const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const 16075 { 16076 VULKAN_HPP_ASSERT( 16077 getDispatcher()->vkGetMemoryZirconHandleFUCHSIA && 16078 "Function <vkGetMemoryZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_memory> enabled!" ); 16079 16080 zx_handle_t zirconHandle; 16081 VULKAN_HPP_NAMESPACE::Result result = 16082 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA( 16083 static_cast<VkDevice>( m_device ), 16084 reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), 16085 &zirconHandle ) ); 16086 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16087 { 16088 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" ); 16089 } 16090 return zirconHandle; 16091 } 16092 16093 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA getMemoryZirconHandlePropertiesFUCHSIA(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle) const16094 Device::getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, 16095 zx_handle_t zirconHandle ) const 16096 { 16097 VULKAN_HPP_ASSERT( 16098 getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA && 16099 "Function <vkGetMemoryZirconHandlePropertiesFUCHSIA> needs extension <VK_FUCHSIA_external_memory> enabled!" ); 16100 16101 VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties; 16102 VULKAN_HPP_NAMESPACE::Result result = 16103 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA( 16104 static_cast<VkDevice>( m_device ), 16105 static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), 16106 zirconHandle, 16107 reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( &memoryZirconHandleProperties ) ) ); 16108 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16109 { 16110 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" ); 16111 } 16112 return memoryZirconHandleProperties; 16113 } 16114 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 16115 16116 # if defined( VK_USE_PLATFORM_FUCHSIA ) 16117 //=== VK_FUCHSIA_external_semaphore === 16118 importSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo) const16119 VULKAN_HPP_INLINE void Device::importSemaphoreZirconHandleFUCHSIA( 16120 const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const 16121 { 16122 VULKAN_HPP_ASSERT( 16123 getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA && 16124 "Function <vkImportSemaphoreZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_semaphore> enabled!" ); 16125 16126 VULKAN_HPP_NAMESPACE::Result result = 16127 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA( 16128 static_cast<VkDevice>( m_device ), 16129 reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( &importSemaphoreZirconHandleInfo ) ) ); 16130 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16131 { 16132 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" ); 16133 } 16134 } 16135 getSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo) const16136 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t Device::getSemaphoreZirconHandleFUCHSIA( 16137 const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const 16138 { 16139 VULKAN_HPP_ASSERT( 16140 getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA && 16141 "Function <vkGetSemaphoreZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_semaphore> enabled!" ); 16142 16143 zx_handle_t zirconHandle; 16144 VULKAN_HPP_NAMESPACE::Result result = 16145 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA( 16146 static_cast<VkDevice>( m_device ), 16147 reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), 16148 &zirconHandle ) ); 16149 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16150 { 16151 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" ); 16152 } 16153 return zirconHandle; 16154 } 16155 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 16156 16157 # if defined( VK_USE_PLATFORM_FUCHSIA ) 16158 //=== VK_FUCHSIA_buffer_collection === 16159 setImageConstraints(const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo) const16160 VULKAN_HPP_INLINE void BufferCollectionFUCHSIA::setImageConstraints( 16161 const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const 16162 { 16163 VULKAN_HPP_ASSERT( 16164 getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA && 16165 "Function <vkSetBufferCollectionImageConstraintsFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!" ); 16166 16167 VULKAN_HPP_NAMESPACE::Result result = 16168 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA( 16169 static_cast<VkDevice>( m_device ), 16170 static_cast<VkBufferCollectionFUCHSIA>( m_bufferCollectionFUCHSIA ), 16171 reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) ) ); 16172 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16173 { 16174 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setImageConstraints" ); 16175 } 16176 } 16177 setBufferConstraints(const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo) const16178 VULKAN_HPP_INLINE void BufferCollectionFUCHSIA::setBufferConstraints( 16179 const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const 16180 { 16181 VULKAN_HPP_ASSERT( 16182 getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA && 16183 "Function <vkSetBufferCollectionBufferConstraintsFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!" ); 16184 16185 VULKAN_HPP_NAMESPACE::Result result = 16186 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA( 16187 static_cast<VkDevice>( m_device ), 16188 static_cast<VkBufferCollectionFUCHSIA>( m_bufferCollectionFUCHSIA ), 16189 reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( &bufferConstraintsInfo ) ) ); 16190 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16191 { 16192 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setBufferConstraints" ); 16193 } 16194 } 16195 16196 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA getProperties() const16197 BufferCollectionFUCHSIA::getProperties() const 16198 { 16199 VULKAN_HPP_ASSERT( 16200 getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA && 16201 "Function <vkGetBufferCollectionPropertiesFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!" ); 16202 16203 VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA properties; 16204 VULKAN_HPP_NAMESPACE::Result result = 16205 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA( 16206 static_cast<VkDevice>( m_device ), 16207 static_cast<VkBufferCollectionFUCHSIA>( m_bufferCollectionFUCHSIA ), 16208 reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( &properties ) ) ); 16209 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16210 { 16211 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::getProperties" ); 16212 } 16213 return properties; 16214 } 16215 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 16216 16217 //=== VK_HUAWEI_subpass_shading === 16218 16219 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, VULKAN_HPP_NAMESPACE::Extent2D> getSubpassShadingMaxWorkgroupSizeHUAWEI() const16220 RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI() const 16221 { 16222 VULKAN_HPP_ASSERT( 16223 getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI && 16224 "Function <vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI> needs extension <VK_HUAWEI_subpass_shading> enabled!" ); 16225 16226 VULKAN_HPP_NAMESPACE::Extent2D maxWorkgroupSize; 16227 VULKAN_HPP_NAMESPACE::Result result = 16228 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( 16229 static_cast<VkDevice>( m_device ), 16230 static_cast<VkRenderPass>( m_renderPass ), 16231 reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) ); 16232 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && 16233 ( result != VULKAN_HPP_NAMESPACE::Result::eIncomplete ) ) 16234 { 16235 throwResultException( result, 16236 VULKAN_HPP_NAMESPACE_STRING "::RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI" ); 16237 } 16238 return std::make_pair( result, maxWorkgroupSize ); 16239 } 16240 subpassShadingHUAWEI() const16241 VULKAN_HPP_INLINE void CommandBuffer::subpassShadingHUAWEI() const VULKAN_HPP_NOEXCEPT 16242 { 16243 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSubpassShadingHUAWEI && 16244 "Function <vkCmdSubpassShadingHUAWEI> needs extension <VK_HUAWEI_subpass_shading> enabled!" ); 16245 16246 getDispatcher()->vkCmdSubpassShadingHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 16247 } 16248 16249 //=== VK_HUAWEI_invocation_mask === 16250 16251 VULKAN_HPP_INLINE void bindInvocationMaskHUAWEI(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout) const16252 CommandBuffer::bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView imageView, 16253 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT 16254 { 16255 VULKAN_HPP_ASSERT( 16256 getDispatcher()->vkCmdBindInvocationMaskHUAWEI && 16257 "Function <vkCmdBindInvocationMaskHUAWEI> needs extension <VK_HUAWEI_invocation_mask> enabled!" ); 16258 16259 getDispatcher()->vkCmdBindInvocationMaskHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ), 16260 static_cast<VkImageView>( imageView ), 16261 static_cast<VkImageLayout>( imageLayout ) ); 16262 } 16263 16264 //=== VK_NV_external_memory_rdma === 16265 getMemoryRemoteAddressNV(const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo) const16266 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RemoteAddressNV Device::getMemoryRemoteAddressNV( 16267 const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const 16268 { 16269 VULKAN_HPP_ASSERT( 16270 getDispatcher()->vkGetMemoryRemoteAddressNV && 16271 "Function <vkGetMemoryRemoteAddressNV> needs extension <VK_NV_external_memory_rdma> enabled!" ); 16272 16273 VULKAN_HPP_NAMESPACE::RemoteAddressNV address; 16274 VULKAN_HPP_NAMESPACE::Result result = 16275 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryRemoteAddressNV( 16276 static_cast<VkDevice>( m_device ), 16277 reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ), 16278 reinterpret_cast<VkRemoteAddressNV *>( &address ) ) ); 16279 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16280 { 16281 throwResultException( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" ); 16282 } 16283 return address; 16284 } 16285 16286 //=== VK_EXT_extended_dynamic_state2 === 16287 16288 VULKAN_HPP_INLINE void setPatchControlPointsEXT(uint32_t patchControlPoints) const16289 CommandBuffer::setPatchControlPointsEXT( uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT 16290 { 16291 VULKAN_HPP_ASSERT( 16292 getDispatcher()->vkCmdSetPatchControlPointsEXT && 16293 "Function <vkCmdSetPatchControlPointsEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" ); 16294 16295 getDispatcher()->vkCmdSetPatchControlPointsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16296 patchControlPoints ); 16297 } 16298 setRasterizerDiscardEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable) const16299 VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnableEXT( 16300 VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT 16301 { 16302 VULKAN_HPP_ASSERT( 16303 getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT && 16304 "Function <vkCmdSetRasterizerDiscardEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" ); 16305 16306 getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16307 static_cast<VkBool32>( rasterizerDiscardEnable ) ); 16308 } 16309 16310 VULKAN_HPP_INLINE void setDepthBiasEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable) const16311 CommandBuffer::setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT 16312 { 16313 VULKAN_HPP_ASSERT( 16314 getDispatcher()->vkCmdSetDepthBiasEnableEXT && 16315 "Function <vkCmdSetDepthBiasEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" ); 16316 16317 getDispatcher()->vkCmdSetDepthBiasEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16318 static_cast<VkBool32>( depthBiasEnable ) ); 16319 } 16320 16321 VULKAN_HPP_INLINE void setLogicOpEXT(VULKAN_HPP_NAMESPACE::LogicOp logicOp) const16322 CommandBuffer::setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp ) const VULKAN_HPP_NOEXCEPT 16323 { 16324 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLogicOpEXT && 16325 "Function <vkCmdSetLogicOpEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" ); 16326 16327 getDispatcher()->vkCmdSetLogicOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16328 static_cast<VkLogicOp>( logicOp ) ); 16329 } 16330 setPrimitiveRestartEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable) const16331 VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnableEXT( 16332 VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT 16333 { 16334 VULKAN_HPP_ASSERT( 16335 getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT && 16336 "Function <vkCmdSetPrimitiveRestartEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!" ); 16337 16338 getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16339 static_cast<VkBool32>( primitiveRestartEnable ) ); 16340 } 16341 16342 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 16343 //=== VK_QNX_screen_surface === 16344 16345 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getScreenPresentationSupportQNX(uint32_t queueFamilyIndex,struct _screen_window & window) const16346 PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, 16347 struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT 16348 { 16349 VULKAN_HPP_ASSERT( 16350 getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX && 16351 "Function <vkGetPhysicalDeviceScreenPresentationSupportQNX> needs extension <VK_QNX_screen_surface> enabled!" ); 16352 16353 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( 16354 getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX( 16355 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &window ) ); 16356 } 16357 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 16358 16359 //=== VK_EXT_color_write_enable === 16360 setColorWriteEnableEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables) const16361 VULKAN_HPP_INLINE void CommandBuffer::setColorWriteEnableEXT( 16362 ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables ) const VULKAN_HPP_NOEXCEPT 16363 { 16364 VULKAN_HPP_ASSERT( 16365 getDispatcher()->vkCmdSetColorWriteEnableEXT && 16366 "Function <vkCmdSetColorWriteEnableEXT> needs extension <VK_EXT_color_write_enable> enabled!" ); 16367 16368 getDispatcher()->vkCmdSetColorWriteEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16369 colorWriteEnables.size(), 16370 reinterpret_cast<const VkBool32 *>( colorWriteEnables.data() ) ); 16371 } 16372 16373 //=== VK_EXT_multi_draw === 16374 16375 VULKAN_HPP_INLINE void drawMultiEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const & vertexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride) const16376 CommandBuffer::drawMultiEXT( ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const & vertexInfo, 16377 uint32_t instanceCount, 16378 uint32_t firstInstance, 16379 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 16380 { 16381 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMultiEXT && 16382 "Function <vkCmdDrawMultiEXT> needs extension <VK_EXT_multi_draw> enabled!" ); 16383 16384 getDispatcher()->vkCmdDrawMultiEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16385 vertexInfo.size(), 16386 reinterpret_cast<const VkMultiDrawInfoEXT *>( vertexInfo.data() ), 16387 instanceCount, 16388 firstInstance, 16389 stride ); 16390 } 16391 drawMultiIndexedEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const & indexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride,Optional<const int32_t> vertexOffset) const16392 VULKAN_HPP_INLINE void CommandBuffer::drawMultiIndexedEXT( 16393 ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const & indexInfo, 16394 uint32_t instanceCount, 16395 uint32_t firstInstance, 16396 uint32_t stride, 16397 Optional<const int32_t> vertexOffset ) const VULKAN_HPP_NOEXCEPT 16398 { 16399 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMultiIndexedEXT && 16400 "Function <vkCmdDrawMultiIndexedEXT> needs extension <VK_EXT_multi_draw> enabled!" ); 16401 16402 getDispatcher()->vkCmdDrawMultiIndexedEXT( 16403 static_cast<VkCommandBuffer>( m_commandBuffer ), 16404 indexInfo.size(), 16405 reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( indexInfo.data() ), 16406 instanceCount, 16407 firstInstance, 16408 stride, 16409 static_cast<const int32_t *>( vertexOffset ) ); 16410 } 16411 16412 //=== VK_EXT_pageable_device_local_memory === 16413 setPriorityEXT(float priority) const16414 VULKAN_HPP_INLINE void DeviceMemory::setPriorityEXT( float priority ) const VULKAN_HPP_NOEXCEPT 16415 { 16416 VULKAN_HPP_ASSERT( 16417 getDispatcher()->vkSetDeviceMemoryPriorityEXT && 16418 "Function <vkSetDeviceMemoryPriorityEXT> needs extension <VK_EXT_pageable_device_local_memory> enabled!" ); 16419 16420 getDispatcher()->vkSetDeviceMemoryPriorityEXT( 16421 static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_deviceMemory ), priority ); 16422 } 16423 16424 //=== VK_KHR_maintenance4 === 16425 16426 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirementsKHR & info) const16427 Device::getBufferMemoryRequirementsKHR( 16428 const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirementsKHR & info ) const VULKAN_HPP_NOEXCEPT 16429 { 16430 VULKAN_HPP_ASSERT( 16431 getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR && 16432 "Function <vkGetDeviceBufferMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" ); 16433 16434 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 16435 getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR( 16436 static_cast<VkDevice>( m_device ), 16437 reinterpret_cast<const VkDeviceBufferMemoryRequirementsKHR *>( &info ), 16438 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 16439 return memoryRequirements; 16440 } 16441 16442 template <typename X, typename Y, typename... Z> getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirementsKHR & info) const16443 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getBufferMemoryRequirementsKHR( 16444 const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirementsKHR & info ) const VULKAN_HPP_NOEXCEPT 16445 { 16446 VULKAN_HPP_ASSERT( 16447 getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR && 16448 "Function <vkGetDeviceBufferMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" ); 16449 16450 StructureChain<X, Y, Z...> structureChain; 16451 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = 16452 structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 16453 getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR( 16454 static_cast<VkDevice>( m_device ), 16455 reinterpret_cast<const VkDeviceBufferMemoryRequirementsKHR *>( &info ), 16456 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 16457 return structureChain; 16458 } 16459 16460 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info) const16461 Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info ) const 16462 VULKAN_HPP_NOEXCEPT 16463 { 16464 VULKAN_HPP_ASSERT( 16465 getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR && 16466 "Function <vkGetDeviceImageMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" ); 16467 16468 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 16469 getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR( 16470 static_cast<VkDevice>( m_device ), 16471 reinterpret_cast<const VkDeviceImageMemoryRequirementsKHR *>( &info ), 16472 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 16473 return memoryRequirements; 16474 } 16475 16476 template <typename X, typename Y, typename... Z> getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info) const16477 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getImageMemoryRequirementsKHR( 16478 const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info ) const VULKAN_HPP_NOEXCEPT 16479 { 16480 VULKAN_HPP_ASSERT( 16481 getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR && 16482 "Function <vkGetDeviceImageMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" ); 16483 16484 StructureChain<X, Y, Z...> structureChain; 16485 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = 16486 structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 16487 getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR( 16488 static_cast<VkDevice>( m_device ), 16489 reinterpret_cast<const VkDeviceImageMemoryRequirementsKHR *>( &info ), 16490 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 16491 return structureChain; 16492 } 16493 16494 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> getImageSparseMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info) const16495 Device::getImageSparseMemoryRequirementsKHR( 16496 const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirementsKHR & info ) const VULKAN_HPP_NOEXCEPT 16497 { 16498 VULKAN_HPP_ASSERT( 16499 getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR && 16500 "Function <vkGetDeviceImageSparseMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!" ); 16501 16502 uint32_t sparseMemoryRequirementCount; 16503 getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR( 16504 static_cast<VkDevice>( m_device ), 16505 reinterpret_cast<const VkDeviceImageMemoryRequirementsKHR *>( &info ), 16506 &sparseMemoryRequirementCount, 16507 nullptr ); 16508 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements( 16509 sparseMemoryRequirementCount ); 16510 getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR( 16511 static_cast<VkDevice>( m_device ), 16512 reinterpret_cast<const VkDeviceImageMemoryRequirementsKHR *>( &info ), 16513 &sparseMemoryRequirementCount, 16514 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) ); 16515 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 16516 return sparseMemoryRequirements; 16517 } 16518 16519 #endif 16520 } // namespace VULKAN_HPP_RAII_NAMESPACE 16521 } // namespace VULKAN_HPP_NAMESPACE 16522 #endif 16523