1 // Copyright 2015-2024 The Khronos Group Inc. 2 // 3 // SPDX-License-Identifier: Apache-2.0 OR MIT 4 // 5 6 // This header is generated from the Khronos Vulkan XML API Registry. 7 8 #ifndef VULKAN_RAII_HPP 9 #define VULKAN_RAII_HPP 10 11 #include <memory> // std::unique_ptr 12 #include <utility> // std::exchange, std::forward 13 #include <vulkan/vulkan.hpp> 14 15 #if !defined( VULKAN_HPP_DISABLE_ENHANCED_MODE ) 16 namespace VULKAN_HPP_NAMESPACE 17 { 18 namespace VULKAN_HPP_RAII_NAMESPACE 19 { 20 # if ( 14 <= VULKAN_HPP_CPP_VERSION ) 21 using std::exchange; 22 # else 23 template <class T, class U = T> 24 VULKAN_HPP_CONSTEXPR_14 VULKAN_HPP_INLINE T exchange( T & obj, U && newValue ) 25 { 26 T oldValue = std::move( obj ); 27 obj = std::forward<U>( newValue ); 28 return oldValue; 29 } 30 # endif 31 32 template <class T> 33 class CreateReturnType 34 { 35 public: 36 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 37 using Type = VULKAN_HPP_EXPECTED<T, VULKAN_HPP_NAMESPACE::Result>; 38 # else 39 using Type = T; 40 # endif 41 }; 42 43 class ContextDispatcher : public DispatchLoaderBase 44 { 45 public: ContextDispatcher(PFN_vkGetInstanceProcAddr getProcAddr)46 ContextDispatcher( PFN_vkGetInstanceProcAddr getProcAddr ) 47 : vkGetInstanceProcAddr( getProcAddr ) 48 //=== VK_VERSION_1_0 === 49 , vkCreateInstance( PFN_vkCreateInstance( getProcAddr( NULL, "vkCreateInstance" ) ) ) 50 , vkEnumerateInstanceExtensionProperties( PFN_vkEnumerateInstanceExtensionProperties( getProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) ) ) 51 , vkEnumerateInstanceLayerProperties( PFN_vkEnumerateInstanceLayerProperties( getProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) ) ) 52 //=== VK_VERSION_1_1 === 53 , vkEnumerateInstanceVersion( PFN_vkEnumerateInstanceVersion( getProcAddr( NULL, "vkEnumerateInstanceVersion" ) ) ) 54 { 55 } 56 57 public: 58 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; 59 60 //=== VK_VERSION_1_0 === 61 PFN_vkCreateInstance vkCreateInstance = 0; 62 PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0; 63 PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0; 64 65 //=== VK_VERSION_1_1 === 66 PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0; 67 }; 68 69 class InstanceDispatcher : public DispatchLoaderBase 70 { 71 public: InstanceDispatcher(PFN_vkGetInstanceProcAddr getProcAddr,VkInstance instance)72 InstanceDispatcher( PFN_vkGetInstanceProcAddr getProcAddr, VkInstance instance ) : vkGetInstanceProcAddr( getProcAddr ) 73 { 74 //=== VK_VERSION_1_0 === 75 vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) ); 76 vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) ); 77 vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) ); 78 vkGetPhysicalDeviceFormatProperties = 79 PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) ); 80 vkGetPhysicalDeviceImageFormatProperties = 81 PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) ); 82 vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) ); 83 vkGetPhysicalDeviceQueueFamilyProperties = 84 PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) ); 85 vkGetPhysicalDeviceMemoryProperties = 86 PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) ); 87 vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) ); 88 vkEnumerateDeviceExtensionProperties = 89 PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) ); 90 vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) ); 91 vkGetPhysicalDeviceSparseImageFormatProperties = 92 PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) ); 93 94 //=== VK_VERSION_1_1 === 95 vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) ); 96 vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) ); 97 vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) ); 98 vkGetPhysicalDeviceFormatProperties2 = 99 PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) ); 100 vkGetPhysicalDeviceImageFormatProperties2 = 101 PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) ); 102 vkGetPhysicalDeviceQueueFamilyProperties2 = 103 PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) ); 104 vkGetPhysicalDeviceMemoryProperties2 = 105 PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) ); 106 vkGetPhysicalDeviceSparseImageFormatProperties2 = 107 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) ); 108 vkGetPhysicalDeviceExternalBufferProperties = 109 PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) ); 110 vkGetPhysicalDeviceExternalFenceProperties = 111 PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) ); 112 vkGetPhysicalDeviceExternalSemaphoreProperties = 113 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) ); 114 115 //=== VK_VERSION_1_3 === 116 vkGetPhysicalDeviceToolProperties = PFN_vkGetPhysicalDeviceToolProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolProperties" ) ); 117 118 //=== VK_KHR_surface === 119 vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) ); 120 vkGetPhysicalDeviceSurfaceSupportKHR = 121 PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) ); 122 vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 123 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) ); 124 vkGetPhysicalDeviceSurfaceFormatsKHR = 125 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) ); 126 vkGetPhysicalDeviceSurfacePresentModesKHR = 127 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) ); 128 129 //=== VK_KHR_swapchain === 130 vkGetPhysicalDevicePresentRectanglesKHR = 131 PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) ); 132 133 //=== VK_KHR_display === 134 vkGetPhysicalDeviceDisplayPropertiesKHR = 135 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) ); 136 vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 137 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) ); 138 vkGetDisplayPlaneSupportedDisplaysKHR = 139 PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) ); 140 vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) ); 141 vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) ); 142 vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) ); 143 vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) ); 144 145 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 146 //=== VK_KHR_xlib_surface === 147 vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) ); 148 vkGetPhysicalDeviceXlibPresentationSupportKHR = 149 PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) ); 150 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 151 152 # if defined( VK_USE_PLATFORM_XCB_KHR ) 153 //=== VK_KHR_xcb_surface === 154 vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) ); 155 vkGetPhysicalDeviceXcbPresentationSupportKHR = 156 PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) ); 157 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 158 159 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 160 //=== VK_KHR_wayland_surface === 161 vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) ); 162 vkGetPhysicalDeviceWaylandPresentationSupportKHR = 163 PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) ); 164 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 165 166 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 167 //=== VK_KHR_android_surface === 168 vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) ); 169 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 170 171 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 172 //=== VK_KHR_win32_surface === 173 vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) ); 174 vkGetPhysicalDeviceWin32PresentationSupportKHR = 175 PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) ); 176 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 177 178 //=== VK_EXT_debug_report === 179 vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) ); 180 vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) ); 181 vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) ); 182 183 //=== VK_KHR_video_queue === 184 vkGetPhysicalDeviceVideoCapabilitiesKHR = 185 PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR" ) ); 186 vkGetPhysicalDeviceVideoFormatPropertiesKHR = 187 PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR" ) ); 188 189 # if defined( VK_USE_PLATFORM_GGP ) 190 //=== VK_GGP_stream_descriptor_surface === 191 vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) ); 192 # endif /*VK_USE_PLATFORM_GGP*/ 193 194 //=== VK_NV_external_memory_capabilities === 195 vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 196 PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) ); 197 198 //=== VK_KHR_get_physical_device_properties2 === 199 vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) ); 200 if ( !vkGetPhysicalDeviceFeatures2 ) 201 vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR; 202 vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) ); 203 if ( !vkGetPhysicalDeviceProperties2 ) 204 vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR; 205 vkGetPhysicalDeviceFormatProperties2KHR = 206 PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) ); 207 if ( !vkGetPhysicalDeviceFormatProperties2 ) 208 vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR; 209 vkGetPhysicalDeviceImageFormatProperties2KHR = 210 PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) ); 211 if ( !vkGetPhysicalDeviceImageFormatProperties2 ) 212 vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR; 213 vkGetPhysicalDeviceQueueFamilyProperties2KHR = 214 PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) ); 215 if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) 216 vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR; 217 vkGetPhysicalDeviceMemoryProperties2KHR = 218 PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) ); 219 if ( !vkGetPhysicalDeviceMemoryProperties2 ) 220 vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR; 221 vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 222 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) ); 223 if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) 224 vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR; 225 226 # if defined( VK_USE_PLATFORM_VI_NN ) 227 //=== VK_NN_vi_surface === 228 vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) ); 229 # endif /*VK_USE_PLATFORM_VI_NN*/ 230 231 //=== VK_KHR_device_group_creation === 232 vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) ); 233 if ( !vkEnumeratePhysicalDeviceGroups ) 234 vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR; 235 236 //=== VK_KHR_external_memory_capabilities === 237 vkGetPhysicalDeviceExternalBufferPropertiesKHR = 238 PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) ); 239 if ( !vkGetPhysicalDeviceExternalBufferProperties ) 240 vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR; 241 242 //=== VK_KHR_external_semaphore_capabilities === 243 vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 244 PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) ); 245 if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) 246 vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; 247 248 //=== VK_EXT_direct_mode_display === 249 vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) ); 250 251 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) 252 //=== VK_EXT_acquire_xlib_display === 253 vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) ); 254 vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) ); 255 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 256 257 //=== VK_EXT_display_surface_counter === 258 vkGetPhysicalDeviceSurfaceCapabilities2EXT = 259 PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) ); 260 261 //=== VK_KHR_external_fence_capabilities === 262 vkGetPhysicalDeviceExternalFencePropertiesKHR = 263 PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) ); 264 if ( !vkGetPhysicalDeviceExternalFenceProperties ) 265 vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR; 266 267 //=== VK_KHR_performance_query === 268 vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( 269 vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) ); 270 vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( 271 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) ); 272 273 //=== VK_KHR_get_surface_capabilities2 === 274 vkGetPhysicalDeviceSurfaceCapabilities2KHR = 275 PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) ); 276 vkGetPhysicalDeviceSurfaceFormats2KHR = 277 PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) ); 278 279 //=== VK_KHR_get_display_properties2 === 280 vkGetPhysicalDeviceDisplayProperties2KHR = 281 PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) ); 282 vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 283 PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) ); 284 vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) ); 285 vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) ); 286 287 # if defined( VK_USE_PLATFORM_IOS_MVK ) 288 //=== VK_MVK_ios_surface === 289 vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) ); 290 # endif /*VK_USE_PLATFORM_IOS_MVK*/ 291 292 # if defined( VK_USE_PLATFORM_MACOS_MVK ) 293 //=== VK_MVK_macos_surface === 294 vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) ); 295 # endif /*VK_USE_PLATFORM_MACOS_MVK*/ 296 297 //=== VK_EXT_debug_utils === 298 vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) ); 299 vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) ); 300 vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) ); 301 302 //=== VK_EXT_sample_locations === 303 vkGetPhysicalDeviceMultisamplePropertiesEXT = 304 PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) ); 305 306 //=== VK_EXT_calibrated_timestamps === 307 vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 308 PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) ); 309 if ( !vkGetPhysicalDeviceCalibrateableTimeDomainsKHR ) 310 vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; 311 312 # if defined( VK_USE_PLATFORM_FUCHSIA ) 313 //=== VK_FUCHSIA_imagepipe_surface === 314 vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) ); 315 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 316 317 # if defined( VK_USE_PLATFORM_METAL_EXT ) 318 //=== VK_EXT_metal_surface === 319 vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) ); 320 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 321 322 //=== VK_KHR_fragment_shading_rate === 323 vkGetPhysicalDeviceFragmentShadingRatesKHR = 324 PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) ); 325 326 //=== VK_EXT_tooling_info === 327 vkGetPhysicalDeviceToolPropertiesEXT = 328 PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) ); 329 if ( !vkGetPhysicalDeviceToolProperties ) 330 vkGetPhysicalDeviceToolProperties = vkGetPhysicalDeviceToolPropertiesEXT; 331 332 //=== VK_NV_cooperative_matrix === 333 vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 334 PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) ); 335 336 //=== VK_NV_coverage_reduction_mode === 337 vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( 338 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) ); 339 340 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 341 //=== VK_EXT_full_screen_exclusive === 342 vkGetPhysicalDeviceSurfacePresentModes2EXT = 343 PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) ); 344 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 345 346 //=== VK_EXT_headless_surface === 347 vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) ); 348 349 //=== VK_EXT_acquire_drm_display === 350 vkAcquireDrmDisplayEXT = PFN_vkAcquireDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireDrmDisplayEXT" ) ); 351 vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetDrmDisplayEXT" ) ); 352 353 //=== VK_KHR_video_encode_queue === 354 vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( 355 vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR" ) ); 356 357 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 358 //=== VK_NV_acquire_winrt_display === 359 vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) ); 360 vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) ); 361 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 362 363 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 364 //=== VK_EXT_directfb_surface === 365 vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) ); 366 vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 367 PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) ); 368 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 369 370 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 371 //=== VK_QNX_screen_surface === 372 vkCreateScreenSurfaceQNX = PFN_vkCreateScreenSurfaceQNX( vkGetInstanceProcAddr( instance, "vkCreateScreenSurfaceQNX" ) ); 373 vkGetPhysicalDeviceScreenPresentationSupportQNX = 374 PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX" ) ); 375 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 376 377 //=== VK_NV_optical_flow === 378 vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 379 PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceOpticalFlowImageFormatsNV" ) ); 380 381 //=== VK_KHR_cooperative_matrix === 382 vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 383 PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR" ) ); 384 385 //=== VK_KHR_calibrated_timestamps === 386 vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = 387 PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsKHR" ) ); 388 389 vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) ); 390 } 391 392 public: 393 //=== VK_VERSION_1_0 === 394 PFN_vkDestroyInstance vkDestroyInstance = 0; 395 PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0; 396 PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0; 397 PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0; 398 PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0; 399 PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0; 400 PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0; 401 PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0; 402 PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; 403 PFN_vkCreateDevice vkCreateDevice = 0; 404 PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0; 405 PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0; 406 PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0; 407 408 //=== VK_VERSION_1_1 === 409 PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0; 410 PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0; 411 PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0; 412 PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0; 413 PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0; 414 PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0; 415 PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0; 416 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0; 417 PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0; 418 PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0; 419 PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0; 420 421 //=== VK_VERSION_1_3 === 422 PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties = 0; 423 424 //=== VK_KHR_surface === 425 PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0; 426 PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0; 427 PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0; 428 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0; 429 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0; 430 431 //=== VK_KHR_swapchain === 432 PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0; 433 434 //=== VK_KHR_display === 435 PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0; 436 PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0; 437 PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0; 438 PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0; 439 PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0; 440 PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0; 441 PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0; 442 443 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 444 //=== VK_KHR_xlib_surface === 445 PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0; 446 PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0; 447 # else 448 PFN_dummy vkCreateXlibSurfaceKHR_placeholder = 0; 449 PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder = 0; 450 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 451 452 # if defined( VK_USE_PLATFORM_XCB_KHR ) 453 //=== VK_KHR_xcb_surface === 454 PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0; 455 PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0; 456 # else 457 PFN_dummy vkCreateXcbSurfaceKHR_placeholder = 0; 458 PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder = 0; 459 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 460 461 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 462 //=== VK_KHR_wayland_surface === 463 PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0; 464 PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0; 465 # else 466 PFN_dummy vkCreateWaylandSurfaceKHR_placeholder = 0; 467 PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder = 0; 468 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 469 470 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 471 //=== VK_KHR_android_surface === 472 PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0; 473 # else 474 PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0; 475 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 476 477 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 478 //=== VK_KHR_win32_surface === 479 PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0; 480 PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0; 481 # else 482 PFN_dummy vkCreateWin32SurfaceKHR_placeholder = 0; 483 PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0; 484 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 485 486 //=== VK_EXT_debug_report === 487 PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0; 488 PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0; 489 PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0; 490 491 //=== VK_KHR_video_queue === 492 PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0; 493 PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0; 494 495 # if defined( VK_USE_PLATFORM_GGP ) 496 //=== VK_GGP_stream_descriptor_surface === 497 PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0; 498 # else 499 PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder = 0; 500 # endif /*VK_USE_PLATFORM_GGP*/ 501 502 //=== VK_NV_external_memory_capabilities === 503 PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0; 504 505 //=== VK_KHR_get_physical_device_properties2 === 506 PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0; 507 PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0; 508 PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0; 509 PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0; 510 PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0; 511 PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0; 512 PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0; 513 514 # if defined( VK_USE_PLATFORM_VI_NN ) 515 //=== VK_NN_vi_surface === 516 PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0; 517 # else 518 PFN_dummy vkCreateViSurfaceNN_placeholder = 0; 519 # endif /*VK_USE_PLATFORM_VI_NN*/ 520 521 //=== VK_KHR_device_group_creation === 522 PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0; 523 524 //=== VK_KHR_external_memory_capabilities === 525 PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0; 526 527 //=== VK_KHR_external_semaphore_capabilities === 528 PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0; 529 530 //=== VK_EXT_direct_mode_display === 531 PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0; 532 533 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) 534 //=== VK_EXT_acquire_xlib_display === 535 PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0; 536 PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0; 537 # else 538 PFN_dummy vkAcquireXlibDisplayEXT_placeholder = 0; 539 PFN_dummy vkGetRandROutputDisplayEXT_placeholder = 0; 540 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 541 542 //=== VK_EXT_display_surface_counter === 543 PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0; 544 545 //=== VK_KHR_external_fence_capabilities === 546 PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0; 547 548 //=== VK_KHR_performance_query === 549 PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0; 550 PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0; 551 552 //=== VK_KHR_get_surface_capabilities2 === 553 PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0; 554 PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0; 555 556 //=== VK_KHR_get_display_properties2 === 557 PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0; 558 PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0; 559 PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0; 560 PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0; 561 562 # if defined( VK_USE_PLATFORM_IOS_MVK ) 563 //=== VK_MVK_ios_surface === 564 PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0; 565 # else 566 PFN_dummy vkCreateIOSSurfaceMVK_placeholder = 0; 567 # endif /*VK_USE_PLATFORM_IOS_MVK*/ 568 569 # if defined( VK_USE_PLATFORM_MACOS_MVK ) 570 //=== VK_MVK_macos_surface === 571 PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0; 572 # else 573 PFN_dummy vkCreateMacOSSurfaceMVK_placeholder = 0; 574 # endif /*VK_USE_PLATFORM_MACOS_MVK*/ 575 576 //=== VK_EXT_debug_utils === 577 PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0; 578 PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0; 579 PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0; 580 581 //=== VK_EXT_sample_locations === 582 PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0; 583 584 //=== VK_EXT_calibrated_timestamps === 585 PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0; 586 587 # if defined( VK_USE_PLATFORM_FUCHSIA ) 588 //=== VK_FUCHSIA_imagepipe_surface === 589 PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0; 590 # else 591 PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder = 0; 592 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 593 594 # if defined( VK_USE_PLATFORM_METAL_EXT ) 595 //=== VK_EXT_metal_surface === 596 PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0; 597 # else 598 PFN_dummy vkCreateMetalSurfaceEXT_placeholder = 0; 599 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 600 601 //=== VK_KHR_fragment_shading_rate === 602 PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0; 603 604 //=== VK_EXT_tooling_info === 605 PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0; 606 607 //=== VK_NV_cooperative_matrix === 608 PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0; 609 610 //=== VK_NV_coverage_reduction_mode === 611 PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0; 612 613 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 614 //=== VK_EXT_full_screen_exclusive === 615 PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0; 616 # else 617 PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder = 0; 618 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 619 620 //=== VK_EXT_headless_surface === 621 PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0; 622 623 //=== VK_EXT_acquire_drm_display === 624 PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0; 625 PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0; 626 627 //=== VK_KHR_video_encode_queue === 628 PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR = 0; 629 630 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 631 //=== VK_NV_acquire_winrt_display === 632 PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0; 633 PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0; 634 # else 635 PFN_dummy vkAcquireWinrtDisplayNV_placeholder = 0; 636 PFN_dummy vkGetWinrtDisplayNV_placeholder = 0; 637 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 638 639 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 640 //=== VK_EXT_directfb_surface === 641 PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0; 642 PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0; 643 # else 644 PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder = 0; 645 PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0; 646 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 647 648 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 649 //=== VK_QNX_screen_surface === 650 PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0; 651 PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0; 652 # else 653 PFN_dummy vkCreateScreenSurfaceQNX_placeholder = 0; 654 PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder = 0; 655 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 656 657 //=== VK_NV_optical_flow === 658 PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV vkGetPhysicalDeviceOpticalFlowImageFormatsNV = 0; 659 660 //=== VK_KHR_cooperative_matrix === 661 PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR = 0; 662 663 //=== VK_KHR_calibrated_timestamps === 664 PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR vkGetPhysicalDeviceCalibrateableTimeDomainsKHR = 0; 665 666 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; 667 }; 668 669 class DeviceDispatcher : public DispatchLoaderBase 670 { 671 public: DeviceDispatcher(PFN_vkGetDeviceProcAddr getProcAddr,VkDevice device)672 DeviceDispatcher( PFN_vkGetDeviceProcAddr getProcAddr, VkDevice device ) : vkGetDeviceProcAddr( getProcAddr ) 673 { 674 //=== VK_VERSION_1_0 === 675 vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) ); 676 vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) ); 677 vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) ); 678 vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) ); 679 vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) ); 680 vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) ); 681 vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) ); 682 vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) ); 683 vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) ); 684 vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) ); 685 vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) ); 686 vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) ); 687 vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) ); 688 vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) ); 689 vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) ); 690 vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) ); 691 vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) ); 692 vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) ); 693 vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) ); 694 vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) ); 695 vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) ); 696 vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) ); 697 vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) ); 698 vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) ); 699 vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) ); 700 vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) ); 701 vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) ); 702 vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) ); 703 vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) ); 704 vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) ); 705 vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) ); 706 vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) ); 707 vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) ); 708 vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) ); 709 vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) ); 710 vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) ); 711 vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) ); 712 vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) ); 713 vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) ); 714 vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) ); 715 vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) ); 716 vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) ); 717 vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) ); 718 vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) ); 719 vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) ); 720 vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) ); 721 vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) ); 722 vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) ); 723 vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) ); 724 vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) ); 725 vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) ); 726 vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) ); 727 vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) ); 728 vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) ); 729 vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) ); 730 vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) ); 731 vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) ); 732 vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) ); 733 vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) ); 734 vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) ); 735 vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) ); 736 vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) ); 737 vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) ); 738 vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) ); 739 vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) ); 740 vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) ); 741 vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) ); 742 vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) ); 743 vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) ); 744 vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) ); 745 vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) ); 746 vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) ); 747 vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) ); 748 vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) ); 749 vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) ); 750 vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) ); 751 vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) ); 752 vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) ); 753 vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) ); 754 vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) ); 755 vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) ); 756 vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) ); 757 vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) ); 758 vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) ); 759 vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) ); 760 vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) ); 761 vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) ); 762 vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) ); 763 vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) ); 764 vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) ); 765 vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) ); 766 vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) ); 767 vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) ); 768 vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) ); 769 vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) ); 770 vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) ); 771 vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) ); 772 vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) ); 773 vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) ); 774 vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) ); 775 vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) ); 776 vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) ); 777 vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) ); 778 vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) ); 779 vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) ); 780 vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) ); 781 vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) ); 782 vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) ); 783 vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) ); 784 vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) ); 785 vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) ); 786 vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) ); 787 vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) ); 788 vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) ); 789 vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) ); 790 vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) ); 791 vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) ); 792 vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) ); 793 vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) ); 794 vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) ); 795 vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) ); 796 797 //=== VK_VERSION_1_1 === 798 vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) ); 799 vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) ); 800 vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) ); 801 vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) ); 802 vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) ); 803 vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) ); 804 vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) ); 805 vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) ); 806 vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) ); 807 vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) ); 808 vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) ); 809 vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) ); 810 vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) ); 811 vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) ); 812 vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) ); 813 vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) ); 814 815 //=== VK_VERSION_1_2 === 816 vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) ); 817 vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) ); 818 vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) ); 819 vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) ); 820 vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) ); 821 vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) ); 822 vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) ); 823 vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) ); 824 vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) ); 825 vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) ); 826 vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) ); 827 vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) ); 828 vkGetDeviceMemoryOpaqueCaptureAddress = 829 PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); 830 831 //=== VK_VERSION_1_3 === 832 vkCreatePrivateDataSlot = PFN_vkCreatePrivateDataSlot( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlot" ) ); 833 vkDestroyPrivateDataSlot = PFN_vkDestroyPrivateDataSlot( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlot" ) ); 834 vkSetPrivateData = PFN_vkSetPrivateData( vkGetDeviceProcAddr( device, "vkSetPrivateData" ) ); 835 vkGetPrivateData = PFN_vkGetPrivateData( vkGetDeviceProcAddr( device, "vkGetPrivateData" ) ); 836 vkCmdSetEvent2 = PFN_vkCmdSetEvent2( vkGetDeviceProcAddr( device, "vkCmdSetEvent2" ) ); 837 vkCmdResetEvent2 = PFN_vkCmdResetEvent2( vkGetDeviceProcAddr( device, "vkCmdResetEvent2" ) ); 838 vkCmdWaitEvents2 = PFN_vkCmdWaitEvents2( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2" ) ); 839 vkCmdPipelineBarrier2 = PFN_vkCmdPipelineBarrier2( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2" ) ); 840 vkCmdWriteTimestamp2 = PFN_vkCmdWriteTimestamp2( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2" ) ); 841 vkQueueSubmit2 = PFN_vkQueueSubmit2( vkGetDeviceProcAddr( device, "vkQueueSubmit2" ) ); 842 vkCmdCopyBuffer2 = PFN_vkCmdCopyBuffer2( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2" ) ); 843 vkCmdCopyImage2 = PFN_vkCmdCopyImage2( vkGetDeviceProcAddr( device, "vkCmdCopyImage2" ) ); 844 vkCmdCopyBufferToImage2 = PFN_vkCmdCopyBufferToImage2( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2" ) ); 845 vkCmdCopyImageToBuffer2 = PFN_vkCmdCopyImageToBuffer2( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2" ) ); 846 vkCmdBlitImage2 = PFN_vkCmdBlitImage2( vkGetDeviceProcAddr( device, "vkCmdBlitImage2" ) ); 847 vkCmdResolveImage2 = PFN_vkCmdResolveImage2( vkGetDeviceProcAddr( device, "vkCmdResolveImage2" ) ); 848 vkCmdBeginRendering = PFN_vkCmdBeginRendering( vkGetDeviceProcAddr( device, "vkCmdBeginRendering" ) ); 849 vkCmdEndRendering = PFN_vkCmdEndRendering( vkGetDeviceProcAddr( device, "vkCmdEndRendering" ) ); 850 vkCmdSetCullMode = PFN_vkCmdSetCullMode( vkGetDeviceProcAddr( device, "vkCmdSetCullMode" ) ); 851 vkCmdSetFrontFace = PFN_vkCmdSetFrontFace( vkGetDeviceProcAddr( device, "vkCmdSetFrontFace" ) ); 852 vkCmdSetPrimitiveTopology = PFN_vkCmdSetPrimitiveTopology( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopology" ) ); 853 vkCmdSetViewportWithCount = PFN_vkCmdSetViewportWithCount( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCount" ) ); 854 vkCmdSetScissorWithCount = PFN_vkCmdSetScissorWithCount( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCount" ) ); 855 vkCmdBindVertexBuffers2 = PFN_vkCmdBindVertexBuffers2( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2" ) ); 856 vkCmdSetDepthTestEnable = PFN_vkCmdSetDepthTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnable" ) ); 857 vkCmdSetDepthWriteEnable = PFN_vkCmdSetDepthWriteEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnable" ) ); 858 vkCmdSetDepthCompareOp = PFN_vkCmdSetDepthCompareOp( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOp" ) ); 859 vkCmdSetDepthBoundsTestEnable = PFN_vkCmdSetDepthBoundsTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnable" ) ); 860 vkCmdSetStencilTestEnable = PFN_vkCmdSetStencilTestEnable( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnable" ) ); 861 vkCmdSetStencilOp = PFN_vkCmdSetStencilOp( vkGetDeviceProcAddr( device, "vkCmdSetStencilOp" ) ); 862 vkCmdSetRasterizerDiscardEnable = PFN_vkCmdSetRasterizerDiscardEnable( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnable" ) ); 863 vkCmdSetDepthBiasEnable = PFN_vkCmdSetDepthBiasEnable( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnable" ) ); 864 vkCmdSetPrimitiveRestartEnable = PFN_vkCmdSetPrimitiveRestartEnable( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnable" ) ); 865 vkGetDeviceBufferMemoryRequirements = PFN_vkGetDeviceBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirements" ) ); 866 vkGetDeviceImageMemoryRequirements = PFN_vkGetDeviceImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirements" ) ); 867 vkGetDeviceImageSparseMemoryRequirements = 868 PFN_vkGetDeviceImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirements" ) ); 869 870 //=== VK_KHR_swapchain === 871 vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) ); 872 vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) ); 873 vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) ); 874 vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) ); 875 vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) ); 876 vkGetDeviceGroupPresentCapabilitiesKHR = 877 PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); 878 vkGetDeviceGroupSurfacePresentModesKHR = 879 PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); 880 vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) ); 881 882 //=== VK_KHR_display_swapchain === 883 vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) ); 884 885 //=== VK_EXT_debug_marker === 886 vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) ); 887 vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) ); 888 vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) ); 889 vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) ); 890 vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) ); 891 892 //=== VK_KHR_video_queue === 893 vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionKHR" ) ); 894 vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionKHR" ) ); 895 vkGetVideoSessionMemoryRequirementsKHR = 896 PFN_vkGetVideoSessionMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetVideoSessionMemoryRequirementsKHR" ) ); 897 vkBindVideoSessionMemoryKHR = PFN_vkBindVideoSessionMemoryKHR( vkGetDeviceProcAddr( device, "vkBindVideoSessionMemoryKHR" ) ); 898 vkCreateVideoSessionParametersKHR = PFN_vkCreateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkCreateVideoSessionParametersKHR" ) ); 899 vkUpdateVideoSessionParametersKHR = PFN_vkUpdateVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkUpdateVideoSessionParametersKHR" ) ); 900 vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkDestroyVideoSessionParametersKHR" ) ); 901 vkCmdBeginVideoCodingKHR = PFN_vkCmdBeginVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginVideoCodingKHR" ) ); 902 vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdEndVideoCodingKHR" ) ); 903 vkCmdControlVideoCodingKHR = PFN_vkCmdControlVideoCodingKHR( vkGetDeviceProcAddr( device, "vkCmdControlVideoCodingKHR" ) ); 904 905 //=== VK_KHR_video_decode_queue === 906 vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdDecodeVideoKHR" ) ); 907 908 //=== VK_EXT_transform_feedback === 909 vkCmdBindTransformFeedbackBuffersEXT = 910 PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) ); 911 vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) ); 912 vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) ); 913 vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) ); 914 vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) ); 915 vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) ); 916 917 //=== VK_NVX_binary_import === 918 vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX( vkGetDeviceProcAddr( device, "vkCreateCuModuleNVX" ) ); 919 vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX( vkGetDeviceProcAddr( device, "vkCreateCuFunctionNVX" ) ); 920 vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX( vkGetDeviceProcAddr( device, "vkDestroyCuModuleNVX" ) ); 921 vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX( vkGetDeviceProcAddr( device, "vkDestroyCuFunctionNVX" ) ); 922 vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX( vkGetDeviceProcAddr( device, "vkCmdCuLaunchKernelNVX" ) ); 923 924 //=== VK_NVX_image_view_handle === 925 vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) ); 926 vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) ); 927 928 //=== VK_AMD_draw_indirect_count === 929 vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) ); 930 if ( !vkCmdDrawIndirectCount ) 931 vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; 932 vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) ); 933 if ( !vkCmdDrawIndexedIndirectCount ) 934 vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; 935 936 //=== VK_AMD_shader_info === 937 vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) ); 938 939 //=== VK_KHR_dynamic_rendering === 940 vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderingKHR" ) ); 941 if ( !vkCmdBeginRendering ) 942 vkCmdBeginRendering = vkCmdBeginRenderingKHR; 943 vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderingKHR" ) ); 944 if ( !vkCmdEndRendering ) 945 vkCmdEndRendering = vkCmdEndRenderingKHR; 946 947 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 948 //=== VK_NV_external_memory_win32 === 949 vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) ); 950 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 951 952 //=== VK_KHR_device_group === 953 vkGetDeviceGroupPeerMemoryFeaturesKHR = 954 PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); 955 if ( !vkGetDeviceGroupPeerMemoryFeatures ) 956 vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; 957 vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) ); 958 if ( !vkCmdSetDeviceMask ) 959 vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; 960 vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) ); 961 if ( !vkCmdDispatchBase ) 962 vkCmdDispatchBase = vkCmdDispatchBaseKHR; 963 964 //=== VK_KHR_maintenance1 === 965 vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) ); 966 if ( !vkTrimCommandPool ) 967 vkTrimCommandPool = vkTrimCommandPoolKHR; 968 969 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 970 //=== VK_KHR_external_memory_win32 === 971 vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) ); 972 vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) ); 973 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 974 975 //=== VK_KHR_external_memory_fd === 976 vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) ); 977 vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) ); 978 979 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 980 //=== VK_KHR_external_semaphore_win32 === 981 vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) ); 982 vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) ); 983 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 984 985 //=== VK_KHR_external_semaphore_fd === 986 vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) ); 987 vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) ); 988 989 //=== VK_KHR_push_descriptor === 990 vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) ); 991 vkCmdPushDescriptorSetWithTemplateKHR = 992 PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); 993 994 //=== VK_EXT_conditional_rendering === 995 vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) ); 996 vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) ); 997 998 //=== VK_KHR_descriptor_update_template === 999 vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) ); 1000 if ( !vkCreateDescriptorUpdateTemplate ) 1001 vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; 1002 vkDestroyDescriptorUpdateTemplateKHR = 1003 PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) ); 1004 if ( !vkDestroyDescriptorUpdateTemplate ) 1005 vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; 1006 vkUpdateDescriptorSetWithTemplateKHR = 1007 PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) ); 1008 if ( !vkUpdateDescriptorSetWithTemplate ) 1009 vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; 1010 1011 //=== VK_NV_clip_space_w_scaling === 1012 vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) ); 1013 1014 //=== VK_EXT_display_control === 1015 vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) ); 1016 vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) ); 1017 vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) ); 1018 vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) ); 1019 1020 //=== VK_GOOGLE_display_timing === 1021 vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) ); 1022 vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) ); 1023 1024 //=== VK_EXT_discard_rectangles === 1025 vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) ); 1026 vkCmdSetDiscardRectangleEnableEXT = PFN_vkCmdSetDiscardRectangleEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEnableEXT" ) ); 1027 vkCmdSetDiscardRectangleModeEXT = PFN_vkCmdSetDiscardRectangleModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleModeEXT" ) ); 1028 1029 //=== VK_EXT_hdr_metadata === 1030 vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) ); 1031 1032 //=== VK_KHR_create_renderpass2 === 1033 vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) ); 1034 if ( !vkCreateRenderPass2 ) 1035 vkCreateRenderPass2 = vkCreateRenderPass2KHR; 1036 vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) ); 1037 if ( !vkCmdBeginRenderPass2 ) 1038 vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; 1039 vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) ); 1040 if ( !vkCmdNextSubpass2 ) 1041 vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; 1042 vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) ); 1043 if ( !vkCmdEndRenderPass2 ) 1044 vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; 1045 1046 //=== VK_KHR_shared_presentable_image === 1047 vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) ); 1048 1049 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1050 //=== VK_KHR_external_fence_win32 === 1051 vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) ); 1052 vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) ); 1053 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1054 1055 //=== VK_KHR_external_fence_fd === 1056 vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) ); 1057 vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) ); 1058 1059 //=== VK_KHR_performance_query === 1060 vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) ); 1061 vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) ); 1062 1063 //=== VK_EXT_debug_utils === 1064 vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) ); 1065 vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) ); 1066 vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) ); 1067 vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) ); 1068 vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) ); 1069 vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) ); 1070 vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) ); 1071 vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) ); 1072 1073 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 1074 //=== VK_ANDROID_external_memory_android_hardware_buffer === 1075 vkGetAndroidHardwareBufferPropertiesANDROID = 1076 PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); 1077 vkGetMemoryAndroidHardwareBufferANDROID = 1078 PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); 1079 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 1080 1081 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 1082 //=== VK_AMDX_shader_enqueue === 1083 vkCreateExecutionGraphPipelinesAMDX = PFN_vkCreateExecutionGraphPipelinesAMDX( vkGetDeviceProcAddr( device, "vkCreateExecutionGraphPipelinesAMDX" ) ); 1084 vkGetExecutionGraphPipelineScratchSizeAMDX = 1085 PFN_vkGetExecutionGraphPipelineScratchSizeAMDX( vkGetDeviceProcAddr( device, "vkGetExecutionGraphPipelineScratchSizeAMDX" ) ); 1086 vkGetExecutionGraphPipelineNodeIndexAMDX = 1087 PFN_vkGetExecutionGraphPipelineNodeIndexAMDX( vkGetDeviceProcAddr( device, "vkGetExecutionGraphPipelineNodeIndexAMDX" ) ); 1088 vkCmdInitializeGraphScratchMemoryAMDX = 1089 PFN_vkCmdInitializeGraphScratchMemoryAMDX( vkGetDeviceProcAddr( device, "vkCmdInitializeGraphScratchMemoryAMDX" ) ); 1090 vkCmdDispatchGraphAMDX = PFN_vkCmdDispatchGraphAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphAMDX" ) ); 1091 vkCmdDispatchGraphIndirectAMDX = PFN_vkCmdDispatchGraphIndirectAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphIndirectAMDX" ) ); 1092 vkCmdDispatchGraphIndirectCountAMDX = PFN_vkCmdDispatchGraphIndirectCountAMDX( vkGetDeviceProcAddr( device, "vkCmdDispatchGraphIndirectCountAMDX" ) ); 1093 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 1094 1095 //=== VK_EXT_sample_locations === 1096 vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) ); 1097 1098 //=== VK_KHR_get_memory_requirements2 === 1099 vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) ); 1100 if ( !vkGetImageMemoryRequirements2 ) 1101 vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; 1102 vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) ); 1103 if ( !vkGetBufferMemoryRequirements2 ) 1104 vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; 1105 vkGetImageSparseMemoryRequirements2KHR = 1106 PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) ); 1107 if ( !vkGetImageSparseMemoryRequirements2 ) 1108 vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; 1109 1110 //=== VK_KHR_acceleration_structure === 1111 vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) ); 1112 vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) ); 1113 vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) ); 1114 vkCmdBuildAccelerationStructuresIndirectKHR = 1115 PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); 1116 vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) ); 1117 vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) ); 1118 vkCopyAccelerationStructureToMemoryKHR = 1119 PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) ); 1120 vkCopyMemoryToAccelerationStructureKHR = 1121 PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) ); 1122 vkWriteAccelerationStructuresPropertiesKHR = 1123 PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) ); 1124 vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) ); 1125 vkCmdCopyAccelerationStructureToMemoryKHR = 1126 PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); 1127 vkCmdCopyMemoryToAccelerationStructureKHR = 1128 PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); 1129 vkGetAccelerationStructureDeviceAddressKHR = 1130 PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) ); 1131 vkCmdWriteAccelerationStructuresPropertiesKHR = 1132 PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); 1133 vkGetDeviceAccelerationStructureCompatibilityKHR = 1134 PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); 1135 vkGetAccelerationStructureBuildSizesKHR = 1136 PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) ); 1137 1138 //=== VK_KHR_ray_tracing_pipeline === 1139 vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) ); 1140 vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) ); 1141 vkGetRayTracingShaderGroupHandlesKHR = 1142 PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) ); 1143 vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 1144 PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); 1145 vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) ); 1146 vkGetRayTracingShaderGroupStackSizeKHR = 1147 PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); 1148 vkCmdSetRayTracingPipelineStackSizeKHR = 1149 PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); 1150 1151 //=== VK_KHR_sampler_ycbcr_conversion === 1152 vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) ); 1153 if ( !vkCreateSamplerYcbcrConversion ) 1154 vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; 1155 vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) ); 1156 if ( !vkDestroySamplerYcbcrConversion ) 1157 vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; 1158 1159 //=== VK_KHR_bind_memory2 === 1160 vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) ); 1161 if ( !vkBindBufferMemory2 ) 1162 vkBindBufferMemory2 = vkBindBufferMemory2KHR; 1163 vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) ); 1164 if ( !vkBindImageMemory2 ) 1165 vkBindImageMemory2 = vkBindImageMemory2KHR; 1166 1167 //=== VK_EXT_image_drm_format_modifier === 1168 vkGetImageDrmFormatModifierPropertiesEXT = 1169 PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); 1170 1171 //=== VK_EXT_validation_cache === 1172 vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) ); 1173 vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) ); 1174 vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) ); 1175 vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) ); 1176 1177 //=== VK_NV_shading_rate_image === 1178 vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) ); 1179 vkCmdSetViewportShadingRatePaletteNV = 1180 PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) ); 1181 vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) ); 1182 1183 //=== VK_NV_ray_tracing === 1184 vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) ); 1185 vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) ); 1186 vkGetAccelerationStructureMemoryRequirementsNV = 1187 PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); 1188 vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) ); 1189 vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) ); 1190 vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) ); 1191 vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) ); 1192 vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) ); 1193 vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) ); 1194 if ( !vkGetRayTracingShaderGroupHandlesKHR ) 1195 vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; 1196 vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) ); 1197 vkCmdWriteAccelerationStructuresPropertiesNV = 1198 PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); 1199 vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) ); 1200 1201 //=== VK_KHR_maintenance3 === 1202 vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) ); 1203 if ( !vkGetDescriptorSetLayoutSupport ) 1204 vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; 1205 1206 //=== VK_KHR_draw_indirect_count === 1207 vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) ); 1208 if ( !vkCmdDrawIndirectCount ) 1209 vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; 1210 vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) ); 1211 if ( !vkCmdDrawIndexedIndirectCount ) 1212 vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; 1213 1214 //=== VK_EXT_external_memory_host === 1215 vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) ); 1216 1217 //=== VK_AMD_buffer_marker === 1218 vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) ); 1219 1220 //=== VK_EXT_calibrated_timestamps === 1221 vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) ); 1222 if ( !vkGetCalibratedTimestampsKHR ) 1223 vkGetCalibratedTimestampsKHR = vkGetCalibratedTimestampsEXT; 1224 1225 //=== VK_NV_mesh_shader === 1226 vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) ); 1227 vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) ); 1228 vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) ); 1229 1230 //=== VK_NV_scissor_exclusive === 1231 vkCmdSetExclusiveScissorEnableNV = PFN_vkCmdSetExclusiveScissorEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorEnableNV" ) ); 1232 vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) ); 1233 1234 //=== VK_NV_device_diagnostic_checkpoints === 1235 vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) ); 1236 vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) ); 1237 1238 //=== VK_KHR_timeline_semaphore === 1239 vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) ); 1240 if ( !vkGetSemaphoreCounterValue ) 1241 vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; 1242 vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) ); 1243 if ( !vkWaitSemaphores ) 1244 vkWaitSemaphores = vkWaitSemaphoresKHR; 1245 vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) ); 1246 if ( !vkSignalSemaphore ) 1247 vkSignalSemaphore = vkSignalSemaphoreKHR; 1248 1249 //=== VK_INTEL_performance_query === 1250 vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) ); 1251 vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) ); 1252 vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) ); 1253 vkCmdSetPerformanceStreamMarkerINTEL = 1254 PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); 1255 vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) ); 1256 vkAcquirePerformanceConfigurationINTEL = 1257 PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) ); 1258 vkReleasePerformanceConfigurationINTEL = 1259 PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) ); 1260 vkQueueSetPerformanceConfigurationINTEL = 1261 PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) ); 1262 vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) ); 1263 1264 //=== VK_AMD_display_native_hdr === 1265 vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) ); 1266 1267 //=== VK_KHR_fragment_shading_rate === 1268 vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) ); 1269 1270 //=== VK_KHR_dynamic_rendering_local_read === 1271 vkCmdSetRenderingAttachmentLocationsKHR = 1272 PFN_vkCmdSetRenderingAttachmentLocationsKHR( vkGetDeviceProcAddr( device, "vkCmdSetRenderingAttachmentLocationsKHR" ) ); 1273 vkCmdSetRenderingInputAttachmentIndicesKHR = 1274 PFN_vkCmdSetRenderingInputAttachmentIndicesKHR( vkGetDeviceProcAddr( device, "vkCmdSetRenderingInputAttachmentIndicesKHR" ) ); 1275 1276 //=== VK_EXT_buffer_device_address === 1277 vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) ); 1278 if ( !vkGetBufferDeviceAddress ) 1279 vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; 1280 1281 //=== VK_KHR_present_wait === 1282 vkWaitForPresentKHR = PFN_vkWaitForPresentKHR( vkGetDeviceProcAddr( device, "vkWaitForPresentKHR" ) ); 1283 1284 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1285 //=== VK_EXT_full_screen_exclusive === 1286 vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) ); 1287 vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) ); 1288 vkGetDeviceGroupSurfacePresentModes2EXT = 1289 PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); 1290 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1291 1292 //=== VK_KHR_buffer_device_address === 1293 vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) ); 1294 if ( !vkGetBufferDeviceAddress ) 1295 vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; 1296 vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) ); 1297 if ( !vkGetBufferOpaqueCaptureAddress ) 1298 vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; 1299 vkGetDeviceMemoryOpaqueCaptureAddressKHR = 1300 PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); 1301 if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) 1302 vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; 1303 1304 //=== VK_EXT_line_rasterization === 1305 vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) ); 1306 if ( !vkCmdSetLineStippleKHR ) 1307 vkCmdSetLineStippleKHR = vkCmdSetLineStippleEXT; 1308 1309 //=== VK_EXT_host_query_reset === 1310 vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) ); 1311 if ( !vkResetQueryPool ) 1312 vkResetQueryPool = vkResetQueryPoolEXT; 1313 1314 //=== VK_EXT_extended_dynamic_state === 1315 vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) ); 1316 if ( !vkCmdSetCullMode ) 1317 vkCmdSetCullMode = vkCmdSetCullModeEXT; 1318 vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) ); 1319 if ( !vkCmdSetFrontFace ) 1320 vkCmdSetFrontFace = vkCmdSetFrontFaceEXT; 1321 vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) ); 1322 if ( !vkCmdSetPrimitiveTopology ) 1323 vkCmdSetPrimitiveTopology = vkCmdSetPrimitiveTopologyEXT; 1324 vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) ); 1325 if ( !vkCmdSetViewportWithCount ) 1326 vkCmdSetViewportWithCount = vkCmdSetViewportWithCountEXT; 1327 vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) ); 1328 if ( !vkCmdSetScissorWithCount ) 1329 vkCmdSetScissorWithCount = vkCmdSetScissorWithCountEXT; 1330 vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) ); 1331 if ( !vkCmdBindVertexBuffers2 ) 1332 vkCmdBindVertexBuffers2 = vkCmdBindVertexBuffers2EXT; 1333 vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) ); 1334 if ( !vkCmdSetDepthTestEnable ) 1335 vkCmdSetDepthTestEnable = vkCmdSetDepthTestEnableEXT; 1336 vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) ); 1337 if ( !vkCmdSetDepthWriteEnable ) 1338 vkCmdSetDepthWriteEnable = vkCmdSetDepthWriteEnableEXT; 1339 vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) ); 1340 if ( !vkCmdSetDepthCompareOp ) 1341 vkCmdSetDepthCompareOp = vkCmdSetDepthCompareOpEXT; 1342 vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) ); 1343 if ( !vkCmdSetDepthBoundsTestEnable ) 1344 vkCmdSetDepthBoundsTestEnable = vkCmdSetDepthBoundsTestEnableEXT; 1345 vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) ); 1346 if ( !vkCmdSetStencilTestEnable ) 1347 vkCmdSetStencilTestEnable = vkCmdSetStencilTestEnableEXT; 1348 vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) ); 1349 if ( !vkCmdSetStencilOp ) 1350 vkCmdSetStencilOp = vkCmdSetStencilOpEXT; 1351 1352 //=== VK_KHR_deferred_host_operations === 1353 vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) ); 1354 vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) ); 1355 vkGetDeferredOperationMaxConcurrencyKHR = 1356 PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); 1357 vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) ); 1358 vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) ); 1359 1360 //=== VK_KHR_pipeline_executable_properties === 1361 vkGetPipelineExecutablePropertiesKHR = 1362 PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) ); 1363 vkGetPipelineExecutableStatisticsKHR = 1364 PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) ); 1365 vkGetPipelineExecutableInternalRepresentationsKHR = 1366 PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); 1367 1368 //=== VK_EXT_host_image_copy === 1369 vkCopyMemoryToImageEXT = PFN_vkCopyMemoryToImageEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToImageEXT" ) ); 1370 vkCopyImageToMemoryEXT = PFN_vkCopyImageToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyImageToMemoryEXT" ) ); 1371 vkCopyImageToImageEXT = PFN_vkCopyImageToImageEXT( vkGetDeviceProcAddr( device, "vkCopyImageToImageEXT" ) ); 1372 vkTransitionImageLayoutEXT = PFN_vkTransitionImageLayoutEXT( vkGetDeviceProcAddr( device, "vkTransitionImageLayoutEXT" ) ); 1373 vkGetImageSubresourceLayout2EXT = PFN_vkGetImageSubresourceLayout2EXT( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2EXT" ) ); 1374 if ( !vkGetImageSubresourceLayout2KHR ) 1375 vkGetImageSubresourceLayout2KHR = vkGetImageSubresourceLayout2EXT; 1376 1377 //=== VK_KHR_map_memory2 === 1378 vkMapMemory2KHR = PFN_vkMapMemory2KHR( vkGetDeviceProcAddr( device, "vkMapMemory2KHR" ) ); 1379 vkUnmapMemory2KHR = PFN_vkUnmapMemory2KHR( vkGetDeviceProcAddr( device, "vkUnmapMemory2KHR" ) ); 1380 1381 //=== VK_EXT_swapchain_maintenance1 === 1382 vkReleaseSwapchainImagesEXT = PFN_vkReleaseSwapchainImagesEXT( vkGetDeviceProcAddr( device, "vkReleaseSwapchainImagesEXT" ) ); 1383 1384 //=== VK_NV_device_generated_commands === 1385 vkGetGeneratedCommandsMemoryRequirementsNV = 1386 PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); 1387 vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) ); 1388 vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) ); 1389 vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) ); 1390 vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) ); 1391 vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) ); 1392 1393 //=== VK_EXT_depth_bias_control === 1394 vkCmdSetDepthBias2EXT = PFN_vkCmdSetDepthBias2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias2EXT" ) ); 1395 1396 //=== VK_EXT_private_data === 1397 vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) ); 1398 if ( !vkCreatePrivateDataSlot ) 1399 vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT; 1400 vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) ); 1401 if ( !vkDestroyPrivateDataSlot ) 1402 vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT; 1403 vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) ); 1404 if ( !vkSetPrivateData ) 1405 vkSetPrivateData = vkSetPrivateDataEXT; 1406 vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) ); 1407 if ( !vkGetPrivateData ) 1408 vkGetPrivateData = vkGetPrivateDataEXT; 1409 1410 //=== VK_KHR_video_encode_queue === 1411 vkGetEncodedVideoSessionParametersKHR = 1412 PFN_vkGetEncodedVideoSessionParametersKHR( vkGetDeviceProcAddr( device, "vkGetEncodedVideoSessionParametersKHR" ) ); 1413 vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR( vkGetDeviceProcAddr( device, "vkCmdEncodeVideoKHR" ) ); 1414 1415 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 1416 //=== VK_NV_cuda_kernel_launch === 1417 vkCreateCudaModuleNV = PFN_vkCreateCudaModuleNV( vkGetDeviceProcAddr( device, "vkCreateCudaModuleNV" ) ); 1418 vkGetCudaModuleCacheNV = PFN_vkGetCudaModuleCacheNV( vkGetDeviceProcAddr( device, "vkGetCudaModuleCacheNV" ) ); 1419 vkCreateCudaFunctionNV = PFN_vkCreateCudaFunctionNV( vkGetDeviceProcAddr( device, "vkCreateCudaFunctionNV" ) ); 1420 vkDestroyCudaModuleNV = PFN_vkDestroyCudaModuleNV( vkGetDeviceProcAddr( device, "vkDestroyCudaModuleNV" ) ); 1421 vkDestroyCudaFunctionNV = PFN_vkDestroyCudaFunctionNV( vkGetDeviceProcAddr( device, "vkDestroyCudaFunctionNV" ) ); 1422 vkCmdCudaLaunchKernelNV = PFN_vkCmdCudaLaunchKernelNV( vkGetDeviceProcAddr( device, "vkCmdCudaLaunchKernelNV" ) ); 1423 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 1424 1425 # if defined( VK_USE_PLATFORM_METAL_EXT ) 1426 //=== VK_EXT_metal_objects === 1427 vkExportMetalObjectsEXT = PFN_vkExportMetalObjectsEXT( vkGetDeviceProcAddr( device, "vkExportMetalObjectsEXT" ) ); 1428 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 1429 1430 //=== VK_KHR_synchronization2 === 1431 vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdSetEvent2KHR" ) ); 1432 if ( !vkCmdSetEvent2 ) 1433 vkCmdSetEvent2 = vkCmdSetEvent2KHR; 1434 vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR( vkGetDeviceProcAddr( device, "vkCmdResetEvent2KHR" ) ); 1435 if ( !vkCmdResetEvent2 ) 1436 vkCmdResetEvent2 = vkCmdResetEvent2KHR; 1437 vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR( vkGetDeviceProcAddr( device, "vkCmdWaitEvents2KHR" ) ); 1438 if ( !vkCmdWaitEvents2 ) 1439 vkCmdWaitEvents2 = vkCmdWaitEvents2KHR; 1440 vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier2KHR" ) ); 1441 if ( !vkCmdPipelineBarrier2 ) 1442 vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR; 1443 vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp2KHR" ) ); 1444 if ( !vkCmdWriteTimestamp2 ) 1445 vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR; 1446 vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR( vkGetDeviceProcAddr( device, "vkQueueSubmit2KHR" ) ); 1447 if ( !vkQueueSubmit2 ) 1448 vkQueueSubmit2 = vkQueueSubmit2KHR; 1449 vkCmdWriteBufferMarker2AMD = PFN_vkCmdWriteBufferMarker2AMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarker2AMD" ) ); 1450 vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointData2NV" ) ); 1451 1452 //=== VK_EXT_descriptor_buffer === 1453 vkGetDescriptorSetLayoutSizeEXT = PFN_vkGetDescriptorSetLayoutSizeEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSizeEXT" ) ); 1454 vkGetDescriptorSetLayoutBindingOffsetEXT = 1455 PFN_vkGetDescriptorSetLayoutBindingOffsetEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutBindingOffsetEXT" ) ); 1456 vkGetDescriptorEXT = PFN_vkGetDescriptorEXT( vkGetDeviceProcAddr( device, "vkGetDescriptorEXT" ) ); 1457 vkCmdBindDescriptorBuffersEXT = PFN_vkCmdBindDescriptorBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBuffersEXT" ) ); 1458 vkCmdSetDescriptorBufferOffsetsEXT = PFN_vkCmdSetDescriptorBufferOffsetsEXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsetsEXT" ) ); 1459 vkCmdBindDescriptorBufferEmbeddedSamplersEXT = 1460 PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplersEXT" ) ); 1461 vkGetBufferOpaqueCaptureDescriptorDataEXT = 1462 PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureDescriptorDataEXT" ) ); 1463 vkGetImageOpaqueCaptureDescriptorDataEXT = 1464 PFN_vkGetImageOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageOpaqueCaptureDescriptorDataEXT" ) ); 1465 vkGetImageViewOpaqueCaptureDescriptorDataEXT = 1466 PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetImageViewOpaqueCaptureDescriptorDataEXT" ) ); 1467 vkGetSamplerOpaqueCaptureDescriptorDataEXT = 1468 PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT( vkGetDeviceProcAddr( device, "vkGetSamplerOpaqueCaptureDescriptorDataEXT" ) ); 1469 vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( 1470 vkGetDeviceProcAddr( device, "vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT" ) ); 1471 1472 //=== VK_NV_fragment_shading_rate_enums === 1473 vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) ); 1474 1475 //=== VK_EXT_mesh_shader === 1476 vkCmdDrawMeshTasksEXT = PFN_vkCmdDrawMeshTasksEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksEXT" ) ); 1477 vkCmdDrawMeshTasksIndirectEXT = PFN_vkCmdDrawMeshTasksIndirectEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectEXT" ) ); 1478 vkCmdDrawMeshTasksIndirectCountEXT = PFN_vkCmdDrawMeshTasksIndirectCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountEXT" ) ); 1479 1480 //=== VK_KHR_copy_commands2 === 1481 vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) ); 1482 if ( !vkCmdCopyBuffer2 ) 1483 vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR; 1484 vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) ); 1485 if ( !vkCmdCopyImage2 ) 1486 vkCmdCopyImage2 = vkCmdCopyImage2KHR; 1487 vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) ); 1488 if ( !vkCmdCopyBufferToImage2 ) 1489 vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR; 1490 vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) ); 1491 if ( !vkCmdCopyImageToBuffer2 ) 1492 vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR; 1493 vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) ); 1494 if ( !vkCmdBlitImage2 ) 1495 vkCmdBlitImage2 = vkCmdBlitImage2KHR; 1496 vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) ); 1497 if ( !vkCmdResolveImage2 ) 1498 vkCmdResolveImage2 = vkCmdResolveImage2KHR; 1499 1500 //=== VK_EXT_device_fault === 1501 vkGetDeviceFaultInfoEXT = PFN_vkGetDeviceFaultInfoEXT( vkGetDeviceProcAddr( device, "vkGetDeviceFaultInfoEXT" ) ); 1502 1503 //=== VK_EXT_vertex_input_dynamic_state === 1504 vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT( vkGetDeviceProcAddr( device, "vkCmdSetVertexInputEXT" ) ); 1505 1506 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1507 //=== VK_FUCHSIA_external_memory === 1508 vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandleFUCHSIA" ) ); 1509 vkGetMemoryZirconHandlePropertiesFUCHSIA = 1510 PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetMemoryZirconHandlePropertiesFUCHSIA" ) ); 1511 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1512 1513 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1514 //=== VK_FUCHSIA_external_semaphore === 1515 vkImportSemaphoreZirconHandleFUCHSIA = 1516 PFN_vkImportSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkImportSemaphoreZirconHandleFUCHSIA" ) ); 1517 vkGetSemaphoreZirconHandleFUCHSIA = PFN_vkGetSemaphoreZirconHandleFUCHSIA( vkGetDeviceProcAddr( device, "vkGetSemaphoreZirconHandleFUCHSIA" ) ); 1518 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1519 1520 # if defined( VK_USE_PLATFORM_FUCHSIA ) 1521 //=== VK_FUCHSIA_buffer_collection === 1522 vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkCreateBufferCollectionFUCHSIA" ) ); 1523 vkSetBufferCollectionImageConstraintsFUCHSIA = 1524 PFN_vkSetBufferCollectionImageConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionImageConstraintsFUCHSIA" ) ); 1525 vkSetBufferCollectionBufferConstraintsFUCHSIA = 1526 PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA( vkGetDeviceProcAddr( device, "vkSetBufferCollectionBufferConstraintsFUCHSIA" ) ); 1527 vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA( vkGetDeviceProcAddr( device, "vkDestroyBufferCollectionFUCHSIA" ) ); 1528 vkGetBufferCollectionPropertiesFUCHSIA = 1529 PFN_vkGetBufferCollectionPropertiesFUCHSIA( vkGetDeviceProcAddr( device, "vkGetBufferCollectionPropertiesFUCHSIA" ) ); 1530 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 1531 1532 //=== VK_HUAWEI_subpass_shading === 1533 vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 1534 PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( vkGetDeviceProcAddr( device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI" ) ); 1535 vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI( vkGetDeviceProcAddr( device, "vkCmdSubpassShadingHUAWEI" ) ); 1536 1537 //=== VK_HUAWEI_invocation_mask === 1538 vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI( vkGetDeviceProcAddr( device, "vkCmdBindInvocationMaskHUAWEI" ) ); 1539 1540 //=== VK_NV_external_memory_rdma === 1541 vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV( vkGetDeviceProcAddr( device, "vkGetMemoryRemoteAddressNV" ) ); 1542 1543 //=== VK_EXT_pipeline_properties === 1544 vkGetPipelinePropertiesEXT = PFN_vkGetPipelinePropertiesEXT( vkGetDeviceProcAddr( device, "vkGetPipelinePropertiesEXT" ) ); 1545 1546 //=== VK_EXT_extended_dynamic_state2 === 1547 vkCmdSetPatchControlPointsEXT = PFN_vkCmdSetPatchControlPointsEXT( vkGetDeviceProcAddr( device, "vkCmdSetPatchControlPointsEXT" ) ); 1548 vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizerDiscardEnableEXT" ) ); 1549 if ( !vkCmdSetRasterizerDiscardEnable ) 1550 vkCmdSetRasterizerDiscardEnable = vkCmdSetRasterizerDiscardEnableEXT; 1551 vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBiasEnableEXT" ) ); 1552 if ( !vkCmdSetDepthBiasEnable ) 1553 vkCmdSetDepthBiasEnable = vkCmdSetDepthBiasEnableEXT; 1554 vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEXT" ) ); 1555 vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveRestartEnableEXT" ) ); 1556 if ( !vkCmdSetPrimitiveRestartEnable ) 1557 vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT; 1558 1559 //=== VK_EXT_color_write_enable === 1560 vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteEnableEXT" ) ); 1561 1562 //=== VK_KHR_ray_tracing_maintenance1 === 1563 vkCmdTraceRaysIndirect2KHR = PFN_vkCmdTraceRaysIndirect2KHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirect2KHR" ) ); 1564 1565 //=== VK_EXT_multi_draw === 1566 vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiEXT" ) ); 1567 vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdDrawMultiIndexedEXT" ) ); 1568 1569 //=== VK_EXT_opacity_micromap === 1570 vkCreateMicromapEXT = PFN_vkCreateMicromapEXT( vkGetDeviceProcAddr( device, "vkCreateMicromapEXT" ) ); 1571 vkDestroyMicromapEXT = PFN_vkDestroyMicromapEXT( vkGetDeviceProcAddr( device, "vkDestroyMicromapEXT" ) ); 1572 vkCmdBuildMicromapsEXT = PFN_vkCmdBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkCmdBuildMicromapsEXT" ) ); 1573 vkBuildMicromapsEXT = PFN_vkBuildMicromapsEXT( vkGetDeviceProcAddr( device, "vkBuildMicromapsEXT" ) ); 1574 vkCopyMicromapEXT = PFN_vkCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapEXT" ) ); 1575 vkCopyMicromapToMemoryEXT = PFN_vkCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCopyMicromapToMemoryEXT" ) ); 1576 vkCopyMemoryToMicromapEXT = PFN_vkCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCopyMemoryToMicromapEXT" ) ); 1577 vkWriteMicromapsPropertiesEXT = PFN_vkWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkWriteMicromapsPropertiesEXT" ) ); 1578 vkCmdCopyMicromapEXT = PFN_vkCmdCopyMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapEXT" ) ); 1579 vkCmdCopyMicromapToMemoryEXT = PFN_vkCmdCopyMicromapToMemoryEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMicromapToMemoryEXT" ) ); 1580 vkCmdCopyMemoryToMicromapEXT = PFN_vkCmdCopyMemoryToMicromapEXT( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToMicromapEXT" ) ); 1581 vkCmdWriteMicromapsPropertiesEXT = PFN_vkCmdWriteMicromapsPropertiesEXT( vkGetDeviceProcAddr( device, "vkCmdWriteMicromapsPropertiesEXT" ) ); 1582 vkGetDeviceMicromapCompatibilityEXT = PFN_vkGetDeviceMicromapCompatibilityEXT( vkGetDeviceProcAddr( device, "vkGetDeviceMicromapCompatibilityEXT" ) ); 1583 vkGetMicromapBuildSizesEXT = PFN_vkGetMicromapBuildSizesEXT( vkGetDeviceProcAddr( device, "vkGetMicromapBuildSizesEXT" ) ); 1584 1585 //=== VK_HUAWEI_cluster_culling_shader === 1586 vkCmdDrawClusterHUAWEI = PFN_vkCmdDrawClusterHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterHUAWEI" ) ); 1587 vkCmdDrawClusterIndirectHUAWEI = PFN_vkCmdDrawClusterIndirectHUAWEI( vkGetDeviceProcAddr( device, "vkCmdDrawClusterIndirectHUAWEI" ) ); 1588 1589 //=== VK_EXT_pageable_device_local_memory === 1590 vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT( vkGetDeviceProcAddr( device, "vkSetDeviceMemoryPriorityEXT" ) ); 1591 1592 //=== VK_KHR_maintenance4 === 1593 vkGetDeviceBufferMemoryRequirementsKHR = 1594 PFN_vkGetDeviceBufferMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceBufferMemoryRequirementsKHR" ) ); 1595 if ( !vkGetDeviceBufferMemoryRequirements ) 1596 vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR; 1597 vkGetDeviceImageMemoryRequirementsKHR = 1598 PFN_vkGetDeviceImageMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageMemoryRequirementsKHR" ) ); 1599 if ( !vkGetDeviceImageMemoryRequirements ) 1600 vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR; 1601 vkGetDeviceImageSparseMemoryRequirementsKHR = 1602 PFN_vkGetDeviceImageSparseMemoryRequirementsKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSparseMemoryRequirementsKHR" ) ); 1603 if ( !vkGetDeviceImageSparseMemoryRequirements ) 1604 vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR; 1605 1606 //=== VK_VALVE_descriptor_set_host_mapping === 1607 vkGetDescriptorSetLayoutHostMappingInfoVALVE = 1608 PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE" ) ); 1609 vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE( vkGetDeviceProcAddr( device, "vkGetDescriptorSetHostMappingVALVE" ) ); 1610 1611 //=== VK_NV_copy_memory_indirect === 1612 vkCmdCopyMemoryIndirectNV = PFN_vkCmdCopyMemoryIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryIndirectNV" ) ); 1613 vkCmdCopyMemoryToImageIndirectNV = PFN_vkCmdCopyMemoryToImageIndirectNV( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToImageIndirectNV" ) ); 1614 1615 //=== VK_NV_memory_decompression === 1616 vkCmdDecompressMemoryNV = PFN_vkCmdDecompressMemoryNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryNV" ) ); 1617 vkCmdDecompressMemoryIndirectCountNV = 1618 PFN_vkCmdDecompressMemoryIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDecompressMemoryIndirectCountNV" ) ); 1619 1620 //=== VK_NV_device_generated_commands_compute === 1621 vkGetPipelineIndirectMemoryRequirementsNV = 1622 PFN_vkGetPipelineIndirectMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectMemoryRequirementsNV" ) ); 1623 vkCmdUpdatePipelineIndirectBufferNV = PFN_vkCmdUpdatePipelineIndirectBufferNV( vkGetDeviceProcAddr( device, "vkCmdUpdatePipelineIndirectBufferNV" ) ); 1624 vkGetPipelineIndirectDeviceAddressNV = 1625 PFN_vkGetPipelineIndirectDeviceAddressNV( vkGetDeviceProcAddr( device, "vkGetPipelineIndirectDeviceAddressNV" ) ); 1626 1627 //=== VK_EXT_extended_dynamic_state3 === 1628 vkCmdSetDepthClampEnableEXT = PFN_vkCmdSetDepthClampEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClampEnableEXT" ) ); 1629 vkCmdSetPolygonModeEXT = PFN_vkCmdSetPolygonModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetPolygonModeEXT" ) ); 1630 vkCmdSetRasterizationSamplesEXT = PFN_vkCmdSetRasterizationSamplesEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizationSamplesEXT" ) ); 1631 vkCmdSetSampleMaskEXT = PFN_vkCmdSetSampleMaskEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleMaskEXT" ) ); 1632 vkCmdSetAlphaToCoverageEnableEXT = PFN_vkCmdSetAlphaToCoverageEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAlphaToCoverageEnableEXT" ) ); 1633 vkCmdSetAlphaToOneEnableEXT = PFN_vkCmdSetAlphaToOneEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAlphaToOneEnableEXT" ) ); 1634 vkCmdSetLogicOpEnableEXT = PFN_vkCmdSetLogicOpEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetLogicOpEnableEXT" ) ); 1635 vkCmdSetColorBlendEnableEXT = PFN_vkCmdSetColorBlendEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendEnableEXT" ) ); 1636 vkCmdSetColorBlendEquationEXT = PFN_vkCmdSetColorBlendEquationEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendEquationEXT" ) ); 1637 vkCmdSetColorWriteMaskEXT = PFN_vkCmdSetColorWriteMaskEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorWriteMaskEXT" ) ); 1638 vkCmdSetTessellationDomainOriginEXT = PFN_vkCmdSetTessellationDomainOriginEXT( vkGetDeviceProcAddr( device, "vkCmdSetTessellationDomainOriginEXT" ) ); 1639 vkCmdSetRasterizationStreamEXT = PFN_vkCmdSetRasterizationStreamEXT( vkGetDeviceProcAddr( device, "vkCmdSetRasterizationStreamEXT" ) ); 1640 vkCmdSetConservativeRasterizationModeEXT = 1641 PFN_vkCmdSetConservativeRasterizationModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetConservativeRasterizationModeEXT" ) ); 1642 vkCmdSetExtraPrimitiveOverestimationSizeEXT = 1643 PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT( vkGetDeviceProcAddr( device, "vkCmdSetExtraPrimitiveOverestimationSizeEXT" ) ); 1644 vkCmdSetDepthClipEnableEXT = PFN_vkCmdSetDepthClipEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClipEnableEXT" ) ); 1645 vkCmdSetSampleLocationsEnableEXT = PFN_vkCmdSetSampleLocationsEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEnableEXT" ) ); 1646 vkCmdSetColorBlendAdvancedEXT = PFN_vkCmdSetColorBlendAdvancedEXT( vkGetDeviceProcAddr( device, "vkCmdSetColorBlendAdvancedEXT" ) ); 1647 vkCmdSetProvokingVertexModeEXT = PFN_vkCmdSetProvokingVertexModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetProvokingVertexModeEXT" ) ); 1648 vkCmdSetLineRasterizationModeEXT = PFN_vkCmdSetLineRasterizationModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineRasterizationModeEXT" ) ); 1649 vkCmdSetLineStippleEnableEXT = PFN_vkCmdSetLineStippleEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEnableEXT" ) ); 1650 vkCmdSetDepthClipNegativeOneToOneEXT = 1651 PFN_vkCmdSetDepthClipNegativeOneToOneEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthClipNegativeOneToOneEXT" ) ); 1652 vkCmdSetViewportWScalingEnableNV = PFN_vkCmdSetViewportWScalingEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingEnableNV" ) ); 1653 vkCmdSetViewportSwizzleNV = PFN_vkCmdSetViewportSwizzleNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportSwizzleNV" ) ); 1654 vkCmdSetCoverageToColorEnableNV = PFN_vkCmdSetCoverageToColorEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageToColorEnableNV" ) ); 1655 vkCmdSetCoverageToColorLocationNV = PFN_vkCmdSetCoverageToColorLocationNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageToColorLocationNV" ) ); 1656 vkCmdSetCoverageModulationModeNV = PFN_vkCmdSetCoverageModulationModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationModeNV" ) ); 1657 vkCmdSetCoverageModulationTableEnableNV = 1658 PFN_vkCmdSetCoverageModulationTableEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationTableEnableNV" ) ); 1659 vkCmdSetCoverageModulationTableNV = PFN_vkCmdSetCoverageModulationTableNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageModulationTableNV" ) ); 1660 vkCmdSetShadingRateImageEnableNV = PFN_vkCmdSetShadingRateImageEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetShadingRateImageEnableNV" ) ); 1661 vkCmdSetRepresentativeFragmentTestEnableNV = 1662 PFN_vkCmdSetRepresentativeFragmentTestEnableNV( vkGetDeviceProcAddr( device, "vkCmdSetRepresentativeFragmentTestEnableNV" ) ); 1663 vkCmdSetCoverageReductionModeNV = PFN_vkCmdSetCoverageReductionModeNV( vkGetDeviceProcAddr( device, "vkCmdSetCoverageReductionModeNV" ) ); 1664 1665 //=== VK_EXT_shader_module_identifier === 1666 vkGetShaderModuleIdentifierEXT = PFN_vkGetShaderModuleIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleIdentifierEXT" ) ); 1667 vkGetShaderModuleCreateInfoIdentifierEXT = 1668 PFN_vkGetShaderModuleCreateInfoIdentifierEXT( vkGetDeviceProcAddr( device, "vkGetShaderModuleCreateInfoIdentifierEXT" ) ); 1669 1670 //=== VK_NV_optical_flow === 1671 vkCreateOpticalFlowSessionNV = PFN_vkCreateOpticalFlowSessionNV( vkGetDeviceProcAddr( device, "vkCreateOpticalFlowSessionNV" ) ); 1672 vkDestroyOpticalFlowSessionNV = PFN_vkDestroyOpticalFlowSessionNV( vkGetDeviceProcAddr( device, "vkDestroyOpticalFlowSessionNV" ) ); 1673 vkBindOpticalFlowSessionImageNV = PFN_vkBindOpticalFlowSessionImageNV( vkGetDeviceProcAddr( device, "vkBindOpticalFlowSessionImageNV" ) ); 1674 vkCmdOpticalFlowExecuteNV = PFN_vkCmdOpticalFlowExecuteNV( vkGetDeviceProcAddr( device, "vkCmdOpticalFlowExecuteNV" ) ); 1675 1676 //=== VK_KHR_maintenance5 === 1677 vkCmdBindIndexBuffer2KHR = PFN_vkCmdBindIndexBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer2KHR" ) ); 1678 vkGetRenderingAreaGranularityKHR = PFN_vkGetRenderingAreaGranularityKHR( vkGetDeviceProcAddr( device, "vkGetRenderingAreaGranularityKHR" ) ); 1679 vkGetDeviceImageSubresourceLayoutKHR = 1680 PFN_vkGetDeviceImageSubresourceLayoutKHR( vkGetDeviceProcAddr( device, "vkGetDeviceImageSubresourceLayoutKHR" ) ); 1681 vkGetImageSubresourceLayout2KHR = PFN_vkGetImageSubresourceLayout2KHR( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout2KHR" ) ); 1682 1683 //=== VK_EXT_shader_object === 1684 vkCreateShadersEXT = PFN_vkCreateShadersEXT( vkGetDeviceProcAddr( device, "vkCreateShadersEXT" ) ); 1685 vkDestroyShaderEXT = PFN_vkDestroyShaderEXT( vkGetDeviceProcAddr( device, "vkDestroyShaderEXT" ) ); 1686 vkGetShaderBinaryDataEXT = PFN_vkGetShaderBinaryDataEXT( vkGetDeviceProcAddr( device, "vkGetShaderBinaryDataEXT" ) ); 1687 vkCmdBindShadersEXT = PFN_vkCmdBindShadersEXT( vkGetDeviceProcAddr( device, "vkCmdBindShadersEXT" ) ); 1688 1689 //=== VK_QCOM_tile_properties === 1690 vkGetFramebufferTilePropertiesQCOM = PFN_vkGetFramebufferTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetFramebufferTilePropertiesQCOM" ) ); 1691 vkGetDynamicRenderingTilePropertiesQCOM = 1692 PFN_vkGetDynamicRenderingTilePropertiesQCOM( vkGetDeviceProcAddr( device, "vkGetDynamicRenderingTilePropertiesQCOM" ) ); 1693 1694 //=== VK_NV_low_latency2 === 1695 vkSetLatencySleepModeNV = PFN_vkSetLatencySleepModeNV( vkGetDeviceProcAddr( device, "vkSetLatencySleepModeNV" ) ); 1696 vkLatencySleepNV = PFN_vkLatencySleepNV( vkGetDeviceProcAddr( device, "vkLatencySleepNV" ) ); 1697 vkSetLatencyMarkerNV = PFN_vkSetLatencyMarkerNV( vkGetDeviceProcAddr( device, "vkSetLatencyMarkerNV" ) ); 1698 vkGetLatencyTimingsNV = PFN_vkGetLatencyTimingsNV( vkGetDeviceProcAddr( device, "vkGetLatencyTimingsNV" ) ); 1699 vkQueueNotifyOutOfBandNV = PFN_vkQueueNotifyOutOfBandNV( vkGetDeviceProcAddr( device, "vkQueueNotifyOutOfBandNV" ) ); 1700 1701 //=== VK_EXT_attachment_feedback_loop_dynamic_state === 1702 vkCmdSetAttachmentFeedbackLoopEnableEXT = 1703 PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetAttachmentFeedbackLoopEnableEXT" ) ); 1704 1705 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 1706 //=== VK_QNX_external_memory_screen_buffer === 1707 vkGetScreenBufferPropertiesQNX = PFN_vkGetScreenBufferPropertiesQNX( vkGetDeviceProcAddr( device, "vkGetScreenBufferPropertiesQNX" ) ); 1708 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 1709 1710 //=== VK_KHR_line_rasterization === 1711 vkCmdSetLineStippleKHR = PFN_vkCmdSetLineStippleKHR( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleKHR" ) ); 1712 1713 //=== VK_KHR_calibrated_timestamps === 1714 vkGetCalibratedTimestampsKHR = PFN_vkGetCalibratedTimestampsKHR( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsKHR" ) ); 1715 1716 //=== VK_KHR_maintenance6 === 1717 vkCmdBindDescriptorSets2KHR = PFN_vkCmdBindDescriptorSets2KHR( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets2KHR" ) ); 1718 vkCmdPushConstants2KHR = PFN_vkCmdPushConstants2KHR( vkGetDeviceProcAddr( device, "vkCmdPushConstants2KHR" ) ); 1719 vkCmdPushDescriptorSet2KHR = PFN_vkCmdPushDescriptorSet2KHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSet2KHR" ) ); 1720 vkCmdPushDescriptorSetWithTemplate2KHR = 1721 PFN_vkCmdPushDescriptorSetWithTemplate2KHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplate2KHR" ) ); 1722 vkCmdSetDescriptorBufferOffsets2EXT = PFN_vkCmdSetDescriptorBufferOffsets2EXT( vkGetDeviceProcAddr( device, "vkCmdSetDescriptorBufferOffsets2EXT" ) ); 1723 vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = 1724 PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorBufferEmbeddedSamplers2EXT" ) ); 1725 } 1726 1727 public: 1728 //=== VK_VERSION_1_0 === 1729 PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; 1730 PFN_vkDestroyDevice vkDestroyDevice = 0; 1731 PFN_vkGetDeviceQueue vkGetDeviceQueue = 0; 1732 PFN_vkQueueSubmit vkQueueSubmit = 0; 1733 PFN_vkQueueWaitIdle vkQueueWaitIdle = 0; 1734 PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0; 1735 PFN_vkAllocateMemory vkAllocateMemory = 0; 1736 PFN_vkFreeMemory vkFreeMemory = 0; 1737 PFN_vkMapMemory vkMapMemory = 0; 1738 PFN_vkUnmapMemory vkUnmapMemory = 0; 1739 PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0; 1740 PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0; 1741 PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0; 1742 PFN_vkBindBufferMemory vkBindBufferMemory = 0; 1743 PFN_vkBindImageMemory vkBindImageMemory = 0; 1744 PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0; 1745 PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0; 1746 PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0; 1747 PFN_vkQueueBindSparse vkQueueBindSparse = 0; 1748 PFN_vkCreateFence vkCreateFence = 0; 1749 PFN_vkDestroyFence vkDestroyFence = 0; 1750 PFN_vkResetFences vkResetFences = 0; 1751 PFN_vkGetFenceStatus vkGetFenceStatus = 0; 1752 PFN_vkWaitForFences vkWaitForFences = 0; 1753 PFN_vkCreateSemaphore vkCreateSemaphore = 0; 1754 PFN_vkDestroySemaphore vkDestroySemaphore = 0; 1755 PFN_vkCreateEvent vkCreateEvent = 0; 1756 PFN_vkDestroyEvent vkDestroyEvent = 0; 1757 PFN_vkGetEventStatus vkGetEventStatus = 0; 1758 PFN_vkSetEvent vkSetEvent = 0; 1759 PFN_vkResetEvent vkResetEvent = 0; 1760 PFN_vkCreateQueryPool vkCreateQueryPool = 0; 1761 PFN_vkDestroyQueryPool vkDestroyQueryPool = 0; 1762 PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0; 1763 PFN_vkCreateBuffer vkCreateBuffer = 0; 1764 PFN_vkDestroyBuffer vkDestroyBuffer = 0; 1765 PFN_vkCreateBufferView vkCreateBufferView = 0; 1766 PFN_vkDestroyBufferView vkDestroyBufferView = 0; 1767 PFN_vkCreateImage vkCreateImage = 0; 1768 PFN_vkDestroyImage vkDestroyImage = 0; 1769 PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0; 1770 PFN_vkCreateImageView vkCreateImageView = 0; 1771 PFN_vkDestroyImageView vkDestroyImageView = 0; 1772 PFN_vkCreateShaderModule vkCreateShaderModule = 0; 1773 PFN_vkDestroyShaderModule vkDestroyShaderModule = 0; 1774 PFN_vkCreatePipelineCache vkCreatePipelineCache = 0; 1775 PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0; 1776 PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0; 1777 PFN_vkMergePipelineCaches vkMergePipelineCaches = 0; 1778 PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0; 1779 PFN_vkCreateComputePipelines vkCreateComputePipelines = 0; 1780 PFN_vkDestroyPipeline vkDestroyPipeline = 0; 1781 PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; 1782 PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0; 1783 PFN_vkCreateSampler vkCreateSampler = 0; 1784 PFN_vkDestroySampler vkDestroySampler = 0; 1785 PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0; 1786 PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0; 1787 PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0; 1788 PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0; 1789 PFN_vkResetDescriptorPool vkResetDescriptorPool = 0; 1790 PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0; 1791 PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0; 1792 PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0; 1793 PFN_vkCreateFramebuffer vkCreateFramebuffer = 0; 1794 PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0; 1795 PFN_vkCreateRenderPass vkCreateRenderPass = 0; 1796 PFN_vkDestroyRenderPass vkDestroyRenderPass = 0; 1797 PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0; 1798 PFN_vkCreateCommandPool vkCreateCommandPool = 0; 1799 PFN_vkDestroyCommandPool vkDestroyCommandPool = 0; 1800 PFN_vkResetCommandPool vkResetCommandPool = 0; 1801 PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0; 1802 PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0; 1803 PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; 1804 PFN_vkEndCommandBuffer vkEndCommandBuffer = 0; 1805 PFN_vkResetCommandBuffer vkResetCommandBuffer = 0; 1806 PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; 1807 PFN_vkCmdSetViewport vkCmdSetViewport = 0; 1808 PFN_vkCmdSetScissor vkCmdSetScissor = 0; 1809 PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0; 1810 PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0; 1811 PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0; 1812 PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0; 1813 PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0; 1814 PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0; 1815 PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0; 1816 PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; 1817 PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; 1818 PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; 1819 PFN_vkCmdDraw vkCmdDraw = 0; 1820 PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; 1821 PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0; 1822 PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0; 1823 PFN_vkCmdDispatch vkCmdDispatch = 0; 1824 PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0; 1825 PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; 1826 PFN_vkCmdCopyImage vkCmdCopyImage = 0; 1827 PFN_vkCmdBlitImage vkCmdBlitImage = 0; 1828 PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; 1829 PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0; 1830 PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0; 1831 PFN_vkCmdFillBuffer vkCmdFillBuffer = 0; 1832 PFN_vkCmdClearColorImage vkCmdClearColorImage = 0; 1833 PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0; 1834 PFN_vkCmdClearAttachments vkCmdClearAttachments = 0; 1835 PFN_vkCmdResolveImage vkCmdResolveImage = 0; 1836 PFN_vkCmdSetEvent vkCmdSetEvent = 0; 1837 PFN_vkCmdResetEvent vkCmdResetEvent = 0; 1838 PFN_vkCmdWaitEvents vkCmdWaitEvents = 0; 1839 PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0; 1840 PFN_vkCmdBeginQuery vkCmdBeginQuery = 0; 1841 PFN_vkCmdEndQuery vkCmdEndQuery = 0; 1842 PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0; 1843 PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0; 1844 PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0; 1845 PFN_vkCmdPushConstants vkCmdPushConstants = 0; 1846 PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0; 1847 PFN_vkCmdNextSubpass vkCmdNextSubpass = 0; 1848 PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; 1849 PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; 1850 1851 //=== VK_VERSION_1_1 === 1852 PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0; 1853 PFN_vkBindImageMemory2 vkBindImageMemory2 = 0; 1854 PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0; 1855 PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0; 1856 PFN_vkCmdDispatchBase vkCmdDispatchBase = 0; 1857 PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0; 1858 PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0; 1859 PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0; 1860 PFN_vkTrimCommandPool vkTrimCommandPool = 0; 1861 PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0; 1862 PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0; 1863 PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0; 1864 PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0; 1865 PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0; 1866 PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0; 1867 PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0; 1868 1869 //=== VK_VERSION_1_2 === 1870 PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0; 1871 PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0; 1872 PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0; 1873 PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0; 1874 PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0; 1875 PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0; 1876 PFN_vkResetQueryPool vkResetQueryPool = 0; 1877 PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0; 1878 PFN_vkWaitSemaphores vkWaitSemaphores = 0; 1879 PFN_vkSignalSemaphore vkSignalSemaphore = 0; 1880 PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0; 1881 PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0; 1882 PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0; 1883 1884 //=== VK_VERSION_1_3 === 1885 PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot = 0; 1886 PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot = 0; 1887 PFN_vkSetPrivateData vkSetPrivateData = 0; 1888 PFN_vkGetPrivateData vkGetPrivateData = 0; 1889 PFN_vkCmdSetEvent2 vkCmdSetEvent2 = 0; 1890 PFN_vkCmdResetEvent2 vkCmdResetEvent2 = 0; 1891 PFN_vkCmdWaitEvents2 vkCmdWaitEvents2 = 0; 1892 PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2 = 0; 1893 PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2 = 0; 1894 PFN_vkQueueSubmit2 vkQueueSubmit2 = 0; 1895 PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2 = 0; 1896 PFN_vkCmdCopyImage2 vkCmdCopyImage2 = 0; 1897 PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2 = 0; 1898 PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2 = 0; 1899 PFN_vkCmdBlitImage2 vkCmdBlitImage2 = 0; 1900 PFN_vkCmdResolveImage2 vkCmdResolveImage2 = 0; 1901 PFN_vkCmdBeginRendering vkCmdBeginRendering = 0; 1902 PFN_vkCmdEndRendering vkCmdEndRendering = 0; 1903 PFN_vkCmdSetCullMode vkCmdSetCullMode = 0; 1904 PFN_vkCmdSetFrontFace vkCmdSetFrontFace = 0; 1905 PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology = 0; 1906 PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount = 0; 1907 PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount = 0; 1908 PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2 = 0; 1909 PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable = 0; 1910 PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable = 0; 1911 PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp = 0; 1912 PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable = 0; 1913 PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable = 0; 1914 PFN_vkCmdSetStencilOp vkCmdSetStencilOp = 0; 1915 PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable = 0; 1916 PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable = 0; 1917 PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable = 0; 1918 PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements = 0; 1919 PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements = 0; 1920 PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements = 0; 1921 1922 //=== VK_KHR_swapchain === 1923 PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0; 1924 PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0; 1925 PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0; 1926 PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0; 1927 PFN_vkQueuePresentKHR vkQueuePresentKHR = 0; 1928 PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0; 1929 PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0; 1930 PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0; 1931 1932 //=== VK_KHR_display_swapchain === 1933 PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0; 1934 1935 //=== VK_EXT_debug_marker === 1936 PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0; 1937 PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0; 1938 PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0; 1939 PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0; 1940 PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0; 1941 1942 //=== VK_KHR_video_queue === 1943 PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0; 1944 PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0; 1945 PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0; 1946 PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0; 1947 PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0; 1948 PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0; 1949 PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0; 1950 PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0; 1951 PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0; 1952 PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0; 1953 1954 //=== VK_KHR_video_decode_queue === 1955 PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0; 1956 1957 //=== VK_EXT_transform_feedback === 1958 PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0; 1959 PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0; 1960 PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0; 1961 PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0; 1962 PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0; 1963 PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0; 1964 1965 //=== VK_NVX_binary_import === 1966 PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0; 1967 PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0; 1968 PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0; 1969 PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0; 1970 PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0; 1971 1972 //=== VK_NVX_image_view_handle === 1973 PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0; 1974 PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0; 1975 1976 //=== VK_AMD_draw_indirect_count === 1977 PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0; 1978 PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0; 1979 1980 //=== VK_AMD_shader_info === 1981 PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0; 1982 1983 //=== VK_KHR_dynamic_rendering === 1984 PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0; 1985 PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR = 0; 1986 1987 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 1988 //=== VK_NV_external_memory_win32 === 1989 PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0; 1990 # else 1991 PFN_dummy vkGetMemoryWin32HandleNV_placeholder = 0; 1992 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 1993 1994 //=== VK_KHR_device_group === 1995 PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0; 1996 PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0; 1997 PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0; 1998 1999 //=== VK_KHR_maintenance1 === 2000 PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0; 2001 2002 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2003 //=== VK_KHR_external_memory_win32 === 2004 PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0; 2005 PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0; 2006 # else 2007 PFN_dummy vkGetMemoryWin32HandleKHR_placeholder = 0; 2008 PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder = 0; 2009 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2010 2011 //=== VK_KHR_external_memory_fd === 2012 PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0; 2013 PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0; 2014 2015 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2016 //=== VK_KHR_external_semaphore_win32 === 2017 PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0; 2018 PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0; 2019 # else 2020 PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder = 0; 2021 PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder = 0; 2022 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2023 2024 //=== VK_KHR_external_semaphore_fd === 2025 PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0; 2026 PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0; 2027 2028 //=== VK_KHR_push_descriptor === 2029 PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0; 2030 PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0; 2031 2032 //=== VK_EXT_conditional_rendering === 2033 PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0; 2034 PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0; 2035 2036 //=== VK_KHR_descriptor_update_template === 2037 PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0; 2038 PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0; 2039 PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0; 2040 2041 //=== VK_NV_clip_space_w_scaling === 2042 PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0; 2043 2044 //=== VK_EXT_display_control === 2045 PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0; 2046 PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0; 2047 PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0; 2048 PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0; 2049 2050 //=== VK_GOOGLE_display_timing === 2051 PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0; 2052 PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0; 2053 2054 //=== VK_EXT_discard_rectangles === 2055 PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0; 2056 PFN_vkCmdSetDiscardRectangleEnableEXT vkCmdSetDiscardRectangleEnableEXT = 0; 2057 PFN_vkCmdSetDiscardRectangleModeEXT vkCmdSetDiscardRectangleModeEXT = 0; 2058 2059 //=== VK_EXT_hdr_metadata === 2060 PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0; 2061 2062 //=== VK_KHR_create_renderpass2 === 2063 PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0; 2064 PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0; 2065 PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0; 2066 PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0; 2067 2068 //=== VK_KHR_shared_presentable_image === 2069 PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0; 2070 2071 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2072 //=== VK_KHR_external_fence_win32 === 2073 PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0; 2074 PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0; 2075 # else 2076 PFN_dummy vkImportFenceWin32HandleKHR_placeholder = 0; 2077 PFN_dummy vkGetFenceWin32HandleKHR_placeholder = 0; 2078 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2079 2080 //=== VK_KHR_external_fence_fd === 2081 PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0; 2082 PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0; 2083 2084 //=== VK_KHR_performance_query === 2085 PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0; 2086 PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0; 2087 2088 //=== VK_EXT_debug_utils === 2089 PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0; 2090 PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0; 2091 PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0; 2092 PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0; 2093 PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0; 2094 PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0; 2095 PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0; 2096 PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0; 2097 2098 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 2099 //=== VK_ANDROID_external_memory_android_hardware_buffer === 2100 PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0; 2101 PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0; 2102 # else 2103 PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder = 0; 2104 PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder = 0; 2105 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 2106 2107 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 2108 //=== VK_AMDX_shader_enqueue === 2109 PFN_vkCreateExecutionGraphPipelinesAMDX vkCreateExecutionGraphPipelinesAMDX = 0; 2110 PFN_vkGetExecutionGraphPipelineScratchSizeAMDX vkGetExecutionGraphPipelineScratchSizeAMDX = 0; 2111 PFN_vkGetExecutionGraphPipelineNodeIndexAMDX vkGetExecutionGraphPipelineNodeIndexAMDX = 0; 2112 PFN_vkCmdInitializeGraphScratchMemoryAMDX vkCmdInitializeGraphScratchMemoryAMDX = 0; 2113 PFN_vkCmdDispatchGraphAMDX vkCmdDispatchGraphAMDX = 0; 2114 PFN_vkCmdDispatchGraphIndirectAMDX vkCmdDispatchGraphIndirectAMDX = 0; 2115 PFN_vkCmdDispatchGraphIndirectCountAMDX vkCmdDispatchGraphIndirectCountAMDX = 0; 2116 # else 2117 PFN_dummy vkCreateExecutionGraphPipelinesAMDX_placeholder = 0; 2118 PFN_dummy vkGetExecutionGraphPipelineScratchSizeAMDX_placeholder = 0; 2119 PFN_dummy vkGetExecutionGraphPipelineNodeIndexAMDX_placeholder = 0; 2120 PFN_dummy vkCmdInitializeGraphScratchMemoryAMDX_placeholder = 0; 2121 PFN_dummy vkCmdDispatchGraphAMDX_placeholder = 0; 2122 PFN_dummy vkCmdDispatchGraphIndirectAMDX_placeholder = 0; 2123 PFN_dummy vkCmdDispatchGraphIndirectCountAMDX_placeholder = 0; 2124 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 2125 2126 //=== VK_EXT_sample_locations === 2127 PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0; 2128 2129 //=== VK_KHR_get_memory_requirements2 === 2130 PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0; 2131 PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0; 2132 PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0; 2133 2134 //=== VK_KHR_acceleration_structure === 2135 PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0; 2136 PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0; 2137 PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0; 2138 PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0; 2139 PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0; 2140 PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0; 2141 PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0; 2142 PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0; 2143 PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0; 2144 PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0; 2145 PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0; 2146 PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0; 2147 PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0; 2148 PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0; 2149 PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0; 2150 PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0; 2151 2152 //=== VK_KHR_ray_tracing_pipeline === 2153 PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0; 2154 PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0; 2155 PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0; 2156 PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0; 2157 PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0; 2158 PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0; 2159 PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0; 2160 2161 //=== VK_KHR_sampler_ycbcr_conversion === 2162 PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0; 2163 PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0; 2164 2165 //=== VK_KHR_bind_memory2 === 2166 PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0; 2167 PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0; 2168 2169 //=== VK_EXT_image_drm_format_modifier === 2170 PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0; 2171 2172 //=== VK_EXT_validation_cache === 2173 PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0; 2174 PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0; 2175 PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0; 2176 PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0; 2177 2178 //=== VK_NV_shading_rate_image === 2179 PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0; 2180 PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0; 2181 PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0; 2182 2183 //=== VK_NV_ray_tracing === 2184 PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0; 2185 PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0; 2186 PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0; 2187 PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0; 2188 PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0; 2189 PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0; 2190 PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0; 2191 PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0; 2192 PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0; 2193 PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0; 2194 PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0; 2195 PFN_vkCompileDeferredNV vkCompileDeferredNV = 0; 2196 2197 //=== VK_KHR_maintenance3 === 2198 PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0; 2199 2200 //=== VK_KHR_draw_indirect_count === 2201 PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0; 2202 PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0; 2203 2204 //=== VK_EXT_external_memory_host === 2205 PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0; 2206 2207 //=== VK_AMD_buffer_marker === 2208 PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0; 2209 2210 //=== VK_EXT_calibrated_timestamps === 2211 PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0; 2212 2213 //=== VK_NV_mesh_shader === 2214 PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0; 2215 PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0; 2216 PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0; 2217 2218 //=== VK_NV_scissor_exclusive === 2219 PFN_vkCmdSetExclusiveScissorEnableNV vkCmdSetExclusiveScissorEnableNV = 0; 2220 PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0; 2221 2222 //=== VK_NV_device_diagnostic_checkpoints === 2223 PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0; 2224 PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0; 2225 2226 //=== VK_KHR_timeline_semaphore === 2227 PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0; 2228 PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0; 2229 PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0; 2230 2231 //=== VK_INTEL_performance_query === 2232 PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0; 2233 PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0; 2234 PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0; 2235 PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0; 2236 PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0; 2237 PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0; 2238 PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0; 2239 PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0; 2240 PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0; 2241 2242 //=== VK_AMD_display_native_hdr === 2243 PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0; 2244 2245 //=== VK_KHR_fragment_shading_rate === 2246 PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0; 2247 2248 //=== VK_KHR_dynamic_rendering_local_read === 2249 PFN_vkCmdSetRenderingAttachmentLocationsKHR vkCmdSetRenderingAttachmentLocationsKHR = 0; 2250 PFN_vkCmdSetRenderingInputAttachmentIndicesKHR vkCmdSetRenderingInputAttachmentIndicesKHR = 0; 2251 2252 //=== VK_EXT_buffer_device_address === 2253 PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0; 2254 2255 //=== VK_KHR_present_wait === 2256 PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0; 2257 2258 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2259 //=== VK_EXT_full_screen_exclusive === 2260 PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0; 2261 PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0; 2262 PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0; 2263 # else 2264 PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder = 0; 2265 PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder = 0; 2266 PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder = 0; 2267 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2268 2269 //=== VK_KHR_buffer_device_address === 2270 PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0; 2271 PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0; 2272 PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0; 2273 2274 //=== VK_EXT_line_rasterization === 2275 PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0; 2276 2277 //=== VK_EXT_host_query_reset === 2278 PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0; 2279 2280 //=== VK_EXT_extended_dynamic_state === 2281 PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0; 2282 PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0; 2283 PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0; 2284 PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0; 2285 PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0; 2286 PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0; 2287 PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0; 2288 PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0; 2289 PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0; 2290 PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0; 2291 PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0; 2292 PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0; 2293 2294 //=== VK_KHR_deferred_host_operations === 2295 PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0; 2296 PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0; 2297 PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0; 2298 PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0; 2299 PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0; 2300 2301 //=== VK_KHR_pipeline_executable_properties === 2302 PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0; 2303 PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0; 2304 PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0; 2305 2306 //=== VK_EXT_host_image_copy === 2307 PFN_vkCopyMemoryToImageEXT vkCopyMemoryToImageEXT = 0; 2308 PFN_vkCopyImageToMemoryEXT vkCopyImageToMemoryEXT = 0; 2309 PFN_vkCopyImageToImageEXT vkCopyImageToImageEXT = 0; 2310 PFN_vkTransitionImageLayoutEXT vkTransitionImageLayoutEXT = 0; 2311 PFN_vkGetImageSubresourceLayout2EXT vkGetImageSubresourceLayout2EXT = 0; 2312 2313 //=== VK_KHR_map_memory2 === 2314 PFN_vkMapMemory2KHR vkMapMemory2KHR = 0; 2315 PFN_vkUnmapMemory2KHR vkUnmapMemory2KHR = 0; 2316 2317 //=== VK_EXT_swapchain_maintenance1 === 2318 PFN_vkReleaseSwapchainImagesEXT vkReleaseSwapchainImagesEXT = 0; 2319 2320 //=== VK_NV_device_generated_commands === 2321 PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0; 2322 PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0; 2323 PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0; 2324 PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0; 2325 PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0; 2326 PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0; 2327 2328 //=== VK_EXT_depth_bias_control === 2329 PFN_vkCmdSetDepthBias2EXT vkCmdSetDepthBias2EXT = 0; 2330 2331 //=== VK_EXT_private_data === 2332 PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0; 2333 PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0; 2334 PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0; 2335 PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0; 2336 2337 //=== VK_KHR_video_encode_queue === 2338 PFN_vkGetEncodedVideoSessionParametersKHR vkGetEncodedVideoSessionParametersKHR = 0; 2339 PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0; 2340 2341 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 2342 //=== VK_NV_cuda_kernel_launch === 2343 PFN_vkCreateCudaModuleNV vkCreateCudaModuleNV = 0; 2344 PFN_vkGetCudaModuleCacheNV vkGetCudaModuleCacheNV = 0; 2345 PFN_vkCreateCudaFunctionNV vkCreateCudaFunctionNV = 0; 2346 PFN_vkDestroyCudaModuleNV vkDestroyCudaModuleNV = 0; 2347 PFN_vkDestroyCudaFunctionNV vkDestroyCudaFunctionNV = 0; 2348 PFN_vkCmdCudaLaunchKernelNV vkCmdCudaLaunchKernelNV = 0; 2349 # else 2350 PFN_dummy vkCreateCudaModuleNV_placeholder = 0; 2351 PFN_dummy vkGetCudaModuleCacheNV_placeholder = 0; 2352 PFN_dummy vkCreateCudaFunctionNV_placeholder = 0; 2353 PFN_dummy vkDestroyCudaModuleNV_placeholder = 0; 2354 PFN_dummy vkDestroyCudaFunctionNV_placeholder = 0; 2355 PFN_dummy vkCmdCudaLaunchKernelNV_placeholder = 0; 2356 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 2357 2358 # if defined( VK_USE_PLATFORM_METAL_EXT ) 2359 //=== VK_EXT_metal_objects === 2360 PFN_vkExportMetalObjectsEXT vkExportMetalObjectsEXT = 0; 2361 # else 2362 PFN_dummy vkExportMetalObjectsEXT_placeholder = 0; 2363 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 2364 2365 //=== VK_KHR_synchronization2 === 2366 PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0; 2367 PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0; 2368 PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0; 2369 PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0; 2370 PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0; 2371 PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0; 2372 PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0; 2373 PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0; 2374 2375 //=== VK_EXT_descriptor_buffer === 2376 PFN_vkGetDescriptorSetLayoutSizeEXT vkGetDescriptorSetLayoutSizeEXT = 0; 2377 PFN_vkGetDescriptorSetLayoutBindingOffsetEXT vkGetDescriptorSetLayoutBindingOffsetEXT = 0; 2378 PFN_vkGetDescriptorEXT vkGetDescriptorEXT = 0; 2379 PFN_vkCmdBindDescriptorBuffersEXT vkCmdBindDescriptorBuffersEXT = 0; 2380 PFN_vkCmdSetDescriptorBufferOffsetsEXT vkCmdSetDescriptorBufferOffsetsEXT = 0; 2381 PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT vkCmdBindDescriptorBufferEmbeddedSamplersEXT = 0; 2382 PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT vkGetBufferOpaqueCaptureDescriptorDataEXT = 0; 2383 PFN_vkGetImageOpaqueCaptureDescriptorDataEXT vkGetImageOpaqueCaptureDescriptorDataEXT = 0; 2384 PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT vkGetImageViewOpaqueCaptureDescriptorDataEXT = 0; 2385 PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT vkGetSamplerOpaqueCaptureDescriptorDataEXT = 0; 2386 PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT = 0; 2387 2388 //=== VK_NV_fragment_shading_rate_enums === 2389 PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0; 2390 2391 //=== VK_EXT_mesh_shader === 2392 PFN_vkCmdDrawMeshTasksEXT vkCmdDrawMeshTasksEXT = 0; 2393 PFN_vkCmdDrawMeshTasksIndirectEXT vkCmdDrawMeshTasksIndirectEXT = 0; 2394 PFN_vkCmdDrawMeshTasksIndirectCountEXT vkCmdDrawMeshTasksIndirectCountEXT = 0; 2395 2396 //=== VK_KHR_copy_commands2 === 2397 PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0; 2398 PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0; 2399 PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0; 2400 PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0; 2401 PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0; 2402 PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0; 2403 2404 //=== VK_EXT_device_fault === 2405 PFN_vkGetDeviceFaultInfoEXT vkGetDeviceFaultInfoEXT = 0; 2406 2407 //=== VK_EXT_vertex_input_dynamic_state === 2408 PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0; 2409 2410 # if defined( VK_USE_PLATFORM_FUCHSIA ) 2411 //=== VK_FUCHSIA_external_memory === 2412 PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0; 2413 PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0; 2414 # else 2415 PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder = 0; 2416 PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder = 0; 2417 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 2418 2419 # if defined( VK_USE_PLATFORM_FUCHSIA ) 2420 //=== VK_FUCHSIA_external_semaphore === 2421 PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0; 2422 PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0; 2423 # else 2424 PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder = 0; 2425 PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder = 0; 2426 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 2427 2428 # if defined( VK_USE_PLATFORM_FUCHSIA ) 2429 //=== VK_FUCHSIA_buffer_collection === 2430 PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA = 0; 2431 PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA = 0; 2432 PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0; 2433 PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA = 0; 2434 PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA = 0; 2435 # else 2436 PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder = 0; 2437 PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder = 0; 2438 PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder = 0; 2439 PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder = 0; 2440 PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder = 0; 2441 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 2442 2443 //=== VK_HUAWEI_subpass_shading === 2444 PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0; 2445 PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0; 2446 2447 //=== VK_HUAWEI_invocation_mask === 2448 PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0; 2449 2450 //=== VK_NV_external_memory_rdma === 2451 PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0; 2452 2453 //=== VK_EXT_pipeline_properties === 2454 PFN_vkGetPipelinePropertiesEXT vkGetPipelinePropertiesEXT = 0; 2455 2456 //=== VK_EXT_extended_dynamic_state2 === 2457 PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0; 2458 PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0; 2459 PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0; 2460 PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0; 2461 PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0; 2462 2463 //=== VK_EXT_color_write_enable === 2464 PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0; 2465 2466 //=== VK_KHR_ray_tracing_maintenance1 === 2467 PFN_vkCmdTraceRaysIndirect2KHR vkCmdTraceRaysIndirect2KHR = 0; 2468 2469 //=== VK_EXT_multi_draw === 2470 PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0; 2471 PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0; 2472 2473 //=== VK_EXT_opacity_micromap === 2474 PFN_vkCreateMicromapEXT vkCreateMicromapEXT = 0; 2475 PFN_vkDestroyMicromapEXT vkDestroyMicromapEXT = 0; 2476 PFN_vkCmdBuildMicromapsEXT vkCmdBuildMicromapsEXT = 0; 2477 PFN_vkBuildMicromapsEXT vkBuildMicromapsEXT = 0; 2478 PFN_vkCopyMicromapEXT vkCopyMicromapEXT = 0; 2479 PFN_vkCopyMicromapToMemoryEXT vkCopyMicromapToMemoryEXT = 0; 2480 PFN_vkCopyMemoryToMicromapEXT vkCopyMemoryToMicromapEXT = 0; 2481 PFN_vkWriteMicromapsPropertiesEXT vkWriteMicromapsPropertiesEXT = 0; 2482 PFN_vkCmdCopyMicromapEXT vkCmdCopyMicromapEXT = 0; 2483 PFN_vkCmdCopyMicromapToMemoryEXT vkCmdCopyMicromapToMemoryEXT = 0; 2484 PFN_vkCmdCopyMemoryToMicromapEXT vkCmdCopyMemoryToMicromapEXT = 0; 2485 PFN_vkCmdWriteMicromapsPropertiesEXT vkCmdWriteMicromapsPropertiesEXT = 0; 2486 PFN_vkGetDeviceMicromapCompatibilityEXT vkGetDeviceMicromapCompatibilityEXT = 0; 2487 PFN_vkGetMicromapBuildSizesEXT vkGetMicromapBuildSizesEXT = 0; 2488 2489 //=== VK_HUAWEI_cluster_culling_shader === 2490 PFN_vkCmdDrawClusterHUAWEI vkCmdDrawClusterHUAWEI = 0; 2491 PFN_vkCmdDrawClusterIndirectHUAWEI vkCmdDrawClusterIndirectHUAWEI = 0; 2492 2493 //=== VK_EXT_pageable_device_local_memory === 2494 PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0; 2495 2496 //=== VK_KHR_maintenance4 === 2497 PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR = 0; 2498 PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR = 0; 2499 PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0; 2500 2501 //=== VK_VALVE_descriptor_set_host_mapping === 2502 PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE = 0; 2503 PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE = 0; 2504 2505 //=== VK_NV_copy_memory_indirect === 2506 PFN_vkCmdCopyMemoryIndirectNV vkCmdCopyMemoryIndirectNV = 0; 2507 PFN_vkCmdCopyMemoryToImageIndirectNV vkCmdCopyMemoryToImageIndirectNV = 0; 2508 2509 //=== VK_NV_memory_decompression === 2510 PFN_vkCmdDecompressMemoryNV vkCmdDecompressMemoryNV = 0; 2511 PFN_vkCmdDecompressMemoryIndirectCountNV vkCmdDecompressMemoryIndirectCountNV = 0; 2512 2513 //=== VK_NV_device_generated_commands_compute === 2514 PFN_vkGetPipelineIndirectMemoryRequirementsNV vkGetPipelineIndirectMemoryRequirementsNV = 0; 2515 PFN_vkCmdUpdatePipelineIndirectBufferNV vkCmdUpdatePipelineIndirectBufferNV = 0; 2516 PFN_vkGetPipelineIndirectDeviceAddressNV vkGetPipelineIndirectDeviceAddressNV = 0; 2517 2518 //=== VK_EXT_extended_dynamic_state3 === 2519 PFN_vkCmdSetDepthClampEnableEXT vkCmdSetDepthClampEnableEXT = 0; 2520 PFN_vkCmdSetPolygonModeEXT vkCmdSetPolygonModeEXT = 0; 2521 PFN_vkCmdSetRasterizationSamplesEXT vkCmdSetRasterizationSamplesEXT = 0; 2522 PFN_vkCmdSetSampleMaskEXT vkCmdSetSampleMaskEXT = 0; 2523 PFN_vkCmdSetAlphaToCoverageEnableEXT vkCmdSetAlphaToCoverageEnableEXT = 0; 2524 PFN_vkCmdSetAlphaToOneEnableEXT vkCmdSetAlphaToOneEnableEXT = 0; 2525 PFN_vkCmdSetLogicOpEnableEXT vkCmdSetLogicOpEnableEXT = 0; 2526 PFN_vkCmdSetColorBlendEnableEXT vkCmdSetColorBlendEnableEXT = 0; 2527 PFN_vkCmdSetColorBlendEquationEXT vkCmdSetColorBlendEquationEXT = 0; 2528 PFN_vkCmdSetColorWriteMaskEXT vkCmdSetColorWriteMaskEXT = 0; 2529 PFN_vkCmdSetTessellationDomainOriginEXT vkCmdSetTessellationDomainOriginEXT = 0; 2530 PFN_vkCmdSetRasterizationStreamEXT vkCmdSetRasterizationStreamEXT = 0; 2531 PFN_vkCmdSetConservativeRasterizationModeEXT vkCmdSetConservativeRasterizationModeEXT = 0; 2532 PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT vkCmdSetExtraPrimitiveOverestimationSizeEXT = 0; 2533 PFN_vkCmdSetDepthClipEnableEXT vkCmdSetDepthClipEnableEXT = 0; 2534 PFN_vkCmdSetSampleLocationsEnableEXT vkCmdSetSampleLocationsEnableEXT = 0; 2535 PFN_vkCmdSetColorBlendAdvancedEXT vkCmdSetColorBlendAdvancedEXT = 0; 2536 PFN_vkCmdSetProvokingVertexModeEXT vkCmdSetProvokingVertexModeEXT = 0; 2537 PFN_vkCmdSetLineRasterizationModeEXT vkCmdSetLineRasterizationModeEXT = 0; 2538 PFN_vkCmdSetLineStippleEnableEXT vkCmdSetLineStippleEnableEXT = 0; 2539 PFN_vkCmdSetDepthClipNegativeOneToOneEXT vkCmdSetDepthClipNegativeOneToOneEXT = 0; 2540 PFN_vkCmdSetViewportWScalingEnableNV vkCmdSetViewportWScalingEnableNV = 0; 2541 PFN_vkCmdSetViewportSwizzleNV vkCmdSetViewportSwizzleNV = 0; 2542 PFN_vkCmdSetCoverageToColorEnableNV vkCmdSetCoverageToColorEnableNV = 0; 2543 PFN_vkCmdSetCoverageToColorLocationNV vkCmdSetCoverageToColorLocationNV = 0; 2544 PFN_vkCmdSetCoverageModulationModeNV vkCmdSetCoverageModulationModeNV = 0; 2545 PFN_vkCmdSetCoverageModulationTableEnableNV vkCmdSetCoverageModulationTableEnableNV = 0; 2546 PFN_vkCmdSetCoverageModulationTableNV vkCmdSetCoverageModulationTableNV = 0; 2547 PFN_vkCmdSetShadingRateImageEnableNV vkCmdSetShadingRateImageEnableNV = 0; 2548 PFN_vkCmdSetRepresentativeFragmentTestEnableNV vkCmdSetRepresentativeFragmentTestEnableNV = 0; 2549 PFN_vkCmdSetCoverageReductionModeNV vkCmdSetCoverageReductionModeNV = 0; 2550 2551 //=== VK_EXT_shader_module_identifier === 2552 PFN_vkGetShaderModuleIdentifierEXT vkGetShaderModuleIdentifierEXT = 0; 2553 PFN_vkGetShaderModuleCreateInfoIdentifierEXT vkGetShaderModuleCreateInfoIdentifierEXT = 0; 2554 2555 //=== VK_NV_optical_flow === 2556 PFN_vkCreateOpticalFlowSessionNV vkCreateOpticalFlowSessionNV = 0; 2557 PFN_vkDestroyOpticalFlowSessionNV vkDestroyOpticalFlowSessionNV = 0; 2558 PFN_vkBindOpticalFlowSessionImageNV vkBindOpticalFlowSessionImageNV = 0; 2559 PFN_vkCmdOpticalFlowExecuteNV vkCmdOpticalFlowExecuteNV = 0; 2560 2561 //=== VK_KHR_maintenance5 === 2562 PFN_vkCmdBindIndexBuffer2KHR vkCmdBindIndexBuffer2KHR = 0; 2563 PFN_vkGetRenderingAreaGranularityKHR vkGetRenderingAreaGranularityKHR = 0; 2564 PFN_vkGetDeviceImageSubresourceLayoutKHR vkGetDeviceImageSubresourceLayoutKHR = 0; 2565 PFN_vkGetImageSubresourceLayout2KHR vkGetImageSubresourceLayout2KHR = 0; 2566 2567 //=== VK_EXT_shader_object === 2568 PFN_vkCreateShadersEXT vkCreateShadersEXT = 0; 2569 PFN_vkDestroyShaderEXT vkDestroyShaderEXT = 0; 2570 PFN_vkGetShaderBinaryDataEXT vkGetShaderBinaryDataEXT = 0; 2571 PFN_vkCmdBindShadersEXT vkCmdBindShadersEXT = 0; 2572 2573 //=== VK_QCOM_tile_properties === 2574 PFN_vkGetFramebufferTilePropertiesQCOM vkGetFramebufferTilePropertiesQCOM = 0; 2575 PFN_vkGetDynamicRenderingTilePropertiesQCOM vkGetDynamicRenderingTilePropertiesQCOM = 0; 2576 2577 //=== VK_NV_low_latency2 === 2578 PFN_vkSetLatencySleepModeNV vkSetLatencySleepModeNV = 0; 2579 PFN_vkLatencySleepNV vkLatencySleepNV = 0; 2580 PFN_vkSetLatencyMarkerNV vkSetLatencyMarkerNV = 0; 2581 PFN_vkGetLatencyTimingsNV vkGetLatencyTimingsNV = 0; 2582 PFN_vkQueueNotifyOutOfBandNV vkQueueNotifyOutOfBandNV = 0; 2583 2584 //=== VK_EXT_attachment_feedback_loop_dynamic_state === 2585 PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT vkCmdSetAttachmentFeedbackLoopEnableEXT = 0; 2586 2587 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 2588 //=== VK_QNX_external_memory_screen_buffer === 2589 PFN_vkGetScreenBufferPropertiesQNX vkGetScreenBufferPropertiesQNX = 0; 2590 # else 2591 PFN_dummy vkGetScreenBufferPropertiesQNX_placeholder = 0; 2592 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 2593 2594 //=== VK_KHR_line_rasterization === 2595 PFN_vkCmdSetLineStippleKHR vkCmdSetLineStippleKHR = 0; 2596 2597 //=== VK_KHR_calibrated_timestamps === 2598 PFN_vkGetCalibratedTimestampsKHR vkGetCalibratedTimestampsKHR = 0; 2599 2600 //=== VK_KHR_maintenance6 === 2601 PFN_vkCmdBindDescriptorSets2KHR vkCmdBindDescriptorSets2KHR = 0; 2602 PFN_vkCmdPushConstants2KHR vkCmdPushConstants2KHR = 0; 2603 PFN_vkCmdPushDescriptorSet2KHR vkCmdPushDescriptorSet2KHR = 0; 2604 PFN_vkCmdPushDescriptorSetWithTemplate2KHR vkCmdPushDescriptorSetWithTemplate2KHR = 0; 2605 PFN_vkCmdSetDescriptorBufferOffsets2EXT vkCmdSetDescriptorBufferOffsets2EXT = 0; 2606 PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT vkCmdBindDescriptorBufferEmbeddedSamplers2EXT = 0; 2607 }; 2608 2609 //======================================== 2610 //=== RAII HANDLE forward declarations === 2611 //======================================== 2612 2613 //=== VK_VERSION_1_0 === 2614 class Instance; 2615 class PhysicalDevice; 2616 class Device; 2617 class Queue; 2618 class DeviceMemory; 2619 class Fence; 2620 class Semaphore; 2621 class Event; 2622 class QueryPool; 2623 class Buffer; 2624 class BufferView; 2625 class Image; 2626 class ImageView; 2627 class ShaderModule; 2628 class PipelineCache; 2629 class Pipeline; 2630 class PipelineLayout; 2631 class Sampler; 2632 class DescriptorPool; 2633 class DescriptorSet; 2634 class DescriptorSetLayout; 2635 class Framebuffer; 2636 class RenderPass; 2637 class CommandPool; 2638 class CommandBuffer; 2639 2640 //=== VK_VERSION_1_1 === 2641 class SamplerYcbcrConversion; 2642 class DescriptorUpdateTemplate; 2643 2644 //=== VK_VERSION_1_3 === 2645 class PrivateDataSlot; 2646 2647 //=== VK_KHR_surface === 2648 class SurfaceKHR; 2649 2650 //=== VK_KHR_swapchain === 2651 class SwapchainKHR; 2652 2653 //=== VK_KHR_display === 2654 class DisplayKHR; 2655 class DisplayModeKHR; 2656 2657 //=== VK_EXT_debug_report === 2658 class DebugReportCallbackEXT; 2659 2660 //=== VK_KHR_video_queue === 2661 class VideoSessionKHR; 2662 class VideoSessionParametersKHR; 2663 2664 //=== VK_NVX_binary_import === 2665 class CuModuleNVX; 2666 class CuFunctionNVX; 2667 2668 //=== VK_EXT_debug_utils === 2669 class DebugUtilsMessengerEXT; 2670 2671 //=== VK_KHR_acceleration_structure === 2672 class AccelerationStructureKHR; 2673 2674 //=== VK_EXT_validation_cache === 2675 class ValidationCacheEXT; 2676 2677 //=== VK_NV_ray_tracing === 2678 class AccelerationStructureNV; 2679 2680 //=== VK_INTEL_performance_query === 2681 class PerformanceConfigurationINTEL; 2682 2683 //=== VK_KHR_deferred_host_operations === 2684 class DeferredOperationKHR; 2685 2686 //=== VK_NV_device_generated_commands === 2687 class IndirectCommandsLayoutNV; 2688 2689 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 2690 //=== VK_NV_cuda_kernel_launch === 2691 class CudaModuleNV; 2692 class CudaFunctionNV; 2693 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 2694 2695 # if defined( VK_USE_PLATFORM_FUCHSIA ) 2696 //=== VK_FUCHSIA_buffer_collection === 2697 class BufferCollectionFUCHSIA; 2698 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 2699 2700 //=== VK_EXT_opacity_micromap === 2701 class MicromapEXT; 2702 2703 //=== VK_NV_optical_flow === 2704 class OpticalFlowSessionNV; 2705 2706 //=== VK_EXT_shader_object === 2707 class ShaderEXT; 2708 2709 //==================== 2710 //=== RAII HANDLES === 2711 //==================== 2712 2713 class Context 2714 { 2715 public: 2716 # if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL Context()2717 Context() 2718 : m_dispatcher( new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher( 2719 m_dynamicLoader.getProcAddress<PFN_vkGetInstanceProcAddr>( "vkGetInstanceProcAddr" ) ) ) 2720 # else 2721 Context( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) 2722 : m_dispatcher( new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher( getInstanceProcAddr ) ) 2723 # endif 2724 { 2725 } 2726 2727 ~Context() = default; 2728 2729 Context( Context const & ) = delete; Context(Context && rhs)2730 Context( Context && rhs ) VULKAN_HPP_NOEXCEPT 2731 # if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 2732 : m_dynamicLoader( std::move( rhs.m_dynamicLoader ) ) 2733 , m_dispatcher( rhs.m_dispatcher.release() ) 2734 # else 2735 : m_dispatcher( rhs.m_dispatcher.release() ) 2736 # endif 2737 { 2738 } 2739 Context & operator=( Context const & ) = delete; 2740 operator =(Context && rhs)2741 Context & operator=( Context && rhs ) VULKAN_HPP_NOEXCEPT 2742 { 2743 if ( this != &rhs ) 2744 { 2745 # if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 2746 m_dynamicLoader = std::move( rhs.m_dynamicLoader ); 2747 # endif 2748 m_dispatcher.reset( rhs.m_dispatcher.release() ); 2749 } 2750 return *this; 2751 } 2752 getDispatcher() const2753 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher const * getDispatcher() const 2754 { 2755 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 2756 return &*m_dispatcher; 2757 } 2758 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context & rhs)2759 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context & rhs ) 2760 { 2761 # if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 2762 std::swap( m_dynamicLoader, rhs.m_dynamicLoader ); 2763 # endif 2764 m_dispatcher.swap( rhs.m_dispatcher ); 2765 } 2766 2767 //=== VK_VERSION_1_0 === 2768 2769 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance>::Type 2770 createInstance( VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & createInfo, 2771 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2772 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2773 2774 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> 2775 enumerateInstanceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 2776 2777 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> enumerateInstanceLayerProperties() const; 2778 2779 //=== VK_VERSION_1_1 === 2780 2781 VULKAN_HPP_NODISCARD uint32_t enumerateInstanceVersion() const; 2782 2783 private: 2784 # if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 2785 VULKAN_HPP_NAMESPACE::DynamicLoader m_dynamicLoader; 2786 # endif 2787 std::unique_ptr<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher> m_dispatcher; 2788 }; 2789 2790 class Instance 2791 { 2792 public: 2793 using CType = VkInstance; 2794 using CppType = VULKAN_HPP_NAMESPACE::Instance; 2795 2796 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance; 2797 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 2798 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance; 2799 2800 public: 2801 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)2802 Instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context, 2803 VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & createInfo, 2804 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 2805 { 2806 *this = context.createInstance( createInfo, allocator ); 2807 } 2808 # endif 2809 Instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context,VkInstance instance,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)2810 Instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const & context, 2811 VkInstance instance, 2812 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 2813 : m_instance( instance ), m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 2814 { 2815 m_dispatcher.reset( new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher( context.getDispatcher()->vkGetInstanceProcAddr, 2816 static_cast<VkInstance>( m_instance ) ) ); 2817 } 2818 Instance(std::nullptr_t)2819 Instance( std::nullptr_t ) {} 2820 ~Instance()2821 ~Instance() 2822 { 2823 clear(); 2824 } 2825 2826 Instance() = delete; 2827 Instance( Instance const & ) = delete; 2828 Instance(Instance && rhs)2829 Instance( Instance && rhs ) VULKAN_HPP_NOEXCEPT 2830 : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) ) 2831 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 2832 , m_dispatcher( rhs.m_dispatcher.release() ) 2833 { 2834 } 2835 2836 Instance & operator=( Instance const & ) = delete; 2837 operator =(Instance && rhs)2838 Instance & operator=( Instance && rhs ) VULKAN_HPP_NOEXCEPT 2839 { 2840 if ( this != &rhs ) 2841 { 2842 std::swap( m_instance, rhs.m_instance ); 2843 std::swap( m_allocator, rhs.m_allocator ); 2844 std::swap( m_dispatcher, rhs.m_dispatcher ); 2845 } 2846 return *this; 2847 } 2848 operator *() const2849 VULKAN_HPP_NAMESPACE::Instance const & operator*() const VULKAN_HPP_NOEXCEPT 2850 { 2851 return m_instance; 2852 } 2853 operator VULKAN_HPP_NAMESPACE::Instance() const2854 operator VULKAN_HPP_NAMESPACE::Instance() const VULKAN_HPP_NOEXCEPT 2855 { 2856 return m_instance; 2857 } 2858 clear()2859 void clear() VULKAN_HPP_NOEXCEPT 2860 { 2861 if ( m_instance ) 2862 { 2863 getDispatcher()->vkDestroyInstance( static_cast<VkInstance>( m_instance ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 2864 } 2865 m_instance = nullptr; 2866 m_allocator = nullptr; 2867 m_dispatcher = nullptr; 2868 } 2869 release()2870 VULKAN_HPP_NAMESPACE::Instance release() 2871 { 2872 m_allocator = nullptr; 2873 m_dispatcher = nullptr; 2874 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_instance, nullptr ); 2875 } 2876 getDispatcher() const2877 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 2878 { 2879 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 2880 return &*m_dispatcher; 2881 } 2882 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance & rhs)2883 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance & rhs ) VULKAN_HPP_NOEXCEPT 2884 { 2885 std::swap( m_instance, rhs.m_instance ); 2886 std::swap( m_allocator, rhs.m_allocator ); 2887 std::swap( m_dispatcher, rhs.m_dispatcher ); 2888 } 2889 2890 //=== VK_VERSION_1_0 === 2891 2892 VULKAN_HPP_NODISCARD 2893 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice>>::Type 2894 enumeratePhysicalDevices() const; 2895 2896 VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT; 2897 2898 //=== VK_VERSION_1_1 === 2899 2900 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> enumeratePhysicalDeviceGroups() const; 2901 2902 //=== VK_KHR_display === 2903 2904 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2905 createDisplayPlaneSurfaceKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & createInfo, 2906 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2907 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2908 2909 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 2910 //=== VK_KHR_xlib_surface === 2911 2912 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2913 createXlibSurfaceKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & createInfo, 2914 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2915 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2916 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 2917 2918 # if defined( VK_USE_PLATFORM_XCB_KHR ) 2919 //=== VK_KHR_xcb_surface === 2920 2921 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2922 createXcbSurfaceKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & createInfo, 2923 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2924 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2925 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 2926 2927 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 2928 //=== VK_KHR_wayland_surface === 2929 2930 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2931 createWaylandSurfaceKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & createInfo, 2932 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2933 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2934 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 2935 2936 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 2937 //=== VK_KHR_android_surface === 2938 2939 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2940 createAndroidSurfaceKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & createInfo, 2941 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2942 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2943 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 2944 2945 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 2946 //=== VK_KHR_win32_surface === 2947 2948 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2949 createWin32SurfaceKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & createInfo, 2950 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2951 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2952 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 2953 2954 //=== VK_EXT_debug_report === 2955 2956 VULKAN_HPP_NODISCARD 2957 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT>::Type 2958 createDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & createInfo, 2959 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2960 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2961 2962 void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, 2963 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, 2964 uint64_t object, 2965 size_t location, 2966 int32_t messageCode, 2967 const std::string & layerPrefix, 2968 const std::string & message ) const VULKAN_HPP_NOEXCEPT; 2969 2970 # if defined( VK_USE_PLATFORM_GGP ) 2971 //=== VK_GGP_stream_descriptor_surface === 2972 2973 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2974 createStreamDescriptorSurfaceGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & createInfo, 2975 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2976 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2977 # endif /*VK_USE_PLATFORM_GGP*/ 2978 2979 # if defined( VK_USE_PLATFORM_VI_NN ) 2980 //=== VK_NN_vi_surface === 2981 2982 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2983 createViSurfaceNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & createInfo, 2984 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2985 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2986 # endif /*VK_USE_PLATFORM_VI_NN*/ 2987 2988 //=== VK_KHR_device_group_creation === 2989 2990 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> enumeratePhysicalDeviceGroupsKHR() const; 2991 2992 # if defined( VK_USE_PLATFORM_IOS_MVK ) 2993 //=== VK_MVK_ios_surface === 2994 2995 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 2996 createIOSSurfaceMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & createInfo, 2997 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 2998 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 2999 # endif /*VK_USE_PLATFORM_IOS_MVK*/ 3000 3001 # if defined( VK_USE_PLATFORM_MACOS_MVK ) 3002 //=== VK_MVK_macos_surface === 3003 3004 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 3005 createMacOSSurfaceMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & createInfo, 3006 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3007 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3008 # endif /*VK_USE_PLATFORM_MACOS_MVK*/ 3009 3010 //=== VK_EXT_debug_utils === 3011 3012 VULKAN_HPP_NODISCARD 3013 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT>::Type 3014 createDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & createInfo, 3015 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3016 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3017 3018 void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 3019 VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, 3020 const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT; 3021 3022 # if defined( VK_USE_PLATFORM_FUCHSIA ) 3023 //=== VK_FUCHSIA_imagepipe_surface === 3024 3025 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 3026 createImagePipeSurfaceFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, 3027 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3028 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3029 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 3030 3031 # if defined( VK_USE_PLATFORM_METAL_EXT ) 3032 //=== VK_EXT_metal_surface === 3033 3034 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 3035 createMetalSurfaceEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & createInfo, 3036 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3037 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3038 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 3039 3040 //=== VK_EXT_headless_surface === 3041 3042 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 3043 createHeadlessSurfaceEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & createInfo, 3044 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3045 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3046 3047 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 3048 //=== VK_EXT_directfb_surface === 3049 3050 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 3051 createDirectFBSurfaceEXT( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & createInfo, 3052 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3053 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3054 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 3055 3056 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 3057 //=== VK_QNX_screen_surface === 3058 3059 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type 3060 createScreenSurfaceQNX( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & createInfo, 3061 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3062 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3063 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 3064 3065 private: 3066 VULKAN_HPP_NAMESPACE::Instance m_instance = {}; 3067 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 3068 std::unique_ptr<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher> m_dispatcher; 3069 }; 3070 3071 class PhysicalDevice 3072 { 3073 public: 3074 using CType = VkPhysicalDevice; 3075 using CppType = VULKAN_HPP_NAMESPACE::PhysicalDevice; 3076 3077 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice; 3078 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3079 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice; 3080 3081 public: PhysicalDevice(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VkPhysicalDevice physicalDevice)3082 PhysicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, VkPhysicalDevice physicalDevice ) 3083 : m_physicalDevice( physicalDevice ), m_dispatcher( instance.getDispatcher() ) 3084 { 3085 } 3086 PhysicalDevice(std::nullptr_t)3087 PhysicalDevice( std::nullptr_t ) {} 3088 ~PhysicalDevice()3089 ~PhysicalDevice() 3090 { 3091 clear(); 3092 } 3093 3094 PhysicalDevice() = delete; 3095 PhysicalDevice(PhysicalDevice const & rhs)3096 PhysicalDevice( PhysicalDevice const & rhs ) : m_physicalDevice( rhs.m_physicalDevice ), m_dispatcher( rhs.m_dispatcher ) {} 3097 PhysicalDevice(PhysicalDevice && rhs)3098 PhysicalDevice( PhysicalDevice && rhs ) VULKAN_HPP_NOEXCEPT 3099 : m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) ) 3100 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 3101 { 3102 } 3103 operator =(PhysicalDevice const & rhs)3104 PhysicalDevice & operator=( PhysicalDevice const & rhs ) 3105 { 3106 m_physicalDevice = rhs.m_physicalDevice; 3107 m_dispatcher = rhs.m_dispatcher; 3108 return *this; 3109 } 3110 operator =(PhysicalDevice && rhs)3111 PhysicalDevice & operator=( PhysicalDevice && rhs ) VULKAN_HPP_NOEXCEPT 3112 { 3113 if ( this != &rhs ) 3114 { 3115 std::swap( m_physicalDevice, rhs.m_physicalDevice ); 3116 std::swap( m_dispatcher, rhs.m_dispatcher ); 3117 } 3118 return *this; 3119 } 3120 operator *() const3121 VULKAN_HPP_NAMESPACE::PhysicalDevice const & operator*() const VULKAN_HPP_NOEXCEPT 3122 { 3123 return m_physicalDevice; 3124 } 3125 operator VULKAN_HPP_NAMESPACE::PhysicalDevice() const3126 operator VULKAN_HPP_NAMESPACE::PhysicalDevice() const VULKAN_HPP_NOEXCEPT 3127 { 3128 return m_physicalDevice; 3129 } 3130 clear()3131 void clear() VULKAN_HPP_NOEXCEPT 3132 { 3133 m_physicalDevice = nullptr; 3134 m_dispatcher = nullptr; 3135 } 3136 release()3137 VULKAN_HPP_NAMESPACE::PhysicalDevice release() 3138 { 3139 m_dispatcher = nullptr; 3140 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_physicalDevice, nullptr ); 3141 } 3142 getDispatcher() const3143 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 3144 { 3145 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 3146 return m_dispatcher; 3147 } 3148 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice & rhs)3149 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice & rhs ) VULKAN_HPP_NOEXCEPT 3150 { 3151 std::swap( m_physicalDevice, rhs.m_physicalDevice ); 3152 std::swap( m_dispatcher, rhs.m_dispatcher ); 3153 } 3154 3155 //=== VK_VERSION_1_0 === 3156 3157 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures() const VULKAN_HPP_NOEXCEPT; 3158 3159 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 3160 3161 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties 3162 getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, 3163 VULKAN_HPP_NAMESPACE::ImageType type, 3164 VULKAN_HPP_NAMESPACE::ImageTiling tiling, 3165 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 3166 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 3167 3168 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties() const VULKAN_HPP_NOEXCEPT; 3169 3170 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> getQueueFamilyProperties() const; 3171 3172 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties() const VULKAN_HPP_NOEXCEPT; 3173 3174 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device>::Type 3175 createDevice( VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & createInfo, 3176 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3177 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3178 3179 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> 3180 enumerateDeviceExtensionProperties( Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 3181 3182 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> enumerateDeviceLayerProperties() const; 3183 3184 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties> 3185 getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, 3186 VULKAN_HPP_NAMESPACE::ImageType type, 3187 VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, 3188 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 3189 VULKAN_HPP_NAMESPACE::ImageTiling tiling ) const; 3190 3191 //=== VK_VERSION_1_1 === 3192 3193 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2() const VULKAN_HPP_NOEXCEPT; 3194 3195 template <typename X, typename Y, typename... Z> 3196 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getFeatures2() const VULKAN_HPP_NOEXCEPT; 3197 3198 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2() const VULKAN_HPP_NOEXCEPT; 3199 3200 template <typename X, typename Y, typename... Z> 3201 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getProperties2() const VULKAN_HPP_NOEXCEPT; 3202 3203 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 3204 3205 template <typename X, typename Y, typename... Z> 3206 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3207 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 3208 3209 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2 3210 getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; 3211 3212 template <typename X, typename Y, typename... Z> 3213 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3214 getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; 3215 3216 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> getQueueFamilyProperties2() const; 3217 3218 template <typename StructureChain> 3219 VULKAN_HPP_NODISCARD std::vector<StructureChain> getQueueFamilyProperties2() const; 3220 3221 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2() const VULKAN_HPP_NOEXCEPT; 3222 3223 template <typename X, typename Y, typename... Z> 3224 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getMemoryProperties2() const VULKAN_HPP_NOEXCEPT; 3225 3226 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> 3227 getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const; 3228 3229 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties 3230 getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT; 3231 3232 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties 3233 getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT; 3234 3235 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties 3236 getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT; 3237 3238 //=== VK_VERSION_1_3 === 3239 3240 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> getToolProperties() const; 3241 3242 //=== VK_KHR_surface === 3243 3244 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 3245 3246 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 3247 3248 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR> 3249 getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 3250 3251 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> 3252 getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 3253 3254 //=== VK_KHR_swapchain === 3255 3256 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::Rect2D> getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 3257 3258 //=== VK_KHR_display === 3259 3260 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> getDisplayPropertiesKHR() const; 3261 3262 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> getDisplayPlanePropertiesKHR() const; 3263 3264 VULKAN_HPP_NODISCARD 3265 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>>::Type 3266 getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const; 3267 3268 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 3269 //=== VK_KHR_xlib_surface === 3270 3271 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 3272 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT; 3273 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 3274 3275 # if defined( VK_USE_PLATFORM_XCB_KHR ) 3276 //=== VK_KHR_xcb_surface === 3277 3278 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 3279 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT; 3280 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 3281 3282 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 3283 //=== VK_KHR_wayland_surface === 3284 3285 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, 3286 struct wl_display & display ) const VULKAN_HPP_NOEXCEPT; 3287 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 3288 3289 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 3290 //=== VK_KHR_win32_surface === 3291 3292 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT; 3293 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3294 3295 //=== VK_KHR_video_queue === 3296 3297 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR 3298 getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const; 3299 3300 template <typename X, typename Y, typename... Z> 3301 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3302 getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const; 3303 3304 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> 3305 getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const; 3306 3307 //=== VK_NV_external_memory_capabilities === 3308 3309 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV getExternalImageFormatPropertiesNV( 3310 VULKAN_HPP_NAMESPACE::Format format, 3311 VULKAN_HPP_NAMESPACE::ImageType type, 3312 VULKAN_HPP_NAMESPACE::ImageTiling tiling, 3313 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 3314 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 3315 VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 3316 3317 //=== VK_KHR_get_physical_device_properties2 === 3318 3319 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR() const VULKAN_HPP_NOEXCEPT; 3320 3321 template <typename X, typename Y, typename... Z> 3322 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getFeatures2KHR() const VULKAN_HPP_NOEXCEPT; 3323 3324 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR() const VULKAN_HPP_NOEXCEPT; 3325 3326 template <typename X, typename Y, typename... Z> 3327 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getProperties2KHR() const VULKAN_HPP_NOEXCEPT; 3328 3329 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 3330 3331 template <typename X, typename Y, typename... Z> 3332 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3333 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT; 3334 3335 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2 3336 getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; 3337 3338 template <typename X, typename Y, typename... Z> 3339 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3340 getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const; 3341 3342 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> getQueueFamilyProperties2KHR() const; 3343 3344 template <typename StructureChain> 3345 VULKAN_HPP_NODISCARD std::vector<StructureChain> getQueueFamilyProperties2KHR() const; 3346 3347 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT; 3348 3349 template <typename X, typename Y, typename... Z> 3350 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT; 3351 3352 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> 3353 getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const; 3354 3355 //=== VK_KHR_external_memory_capabilities === 3356 3357 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties 3358 getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT; 3359 3360 //=== VK_KHR_external_semaphore_capabilities === 3361 3362 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties 3363 getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT; 3364 3365 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) 3366 //=== VK_EXT_acquire_xlib_display === 3367 3368 void acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; 3369 3370 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type 3371 getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3372 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 3373 3374 //=== VK_EXT_display_surface_counter === 3375 3376 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 3377 3378 //=== VK_KHR_external_fence_capabilities === 3379 3380 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties 3381 getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT; 3382 3383 //=== VK_KHR_performance_query === 3384 3385 VULKAN_HPP_NODISCARD 3386 std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>, std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>> 3387 enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const; 3388 3389 VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( 3390 const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo ) const VULKAN_HPP_NOEXCEPT; 3391 3392 //=== VK_KHR_get_surface_capabilities2 === 3393 3394 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR 3395 getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 3396 3397 template <typename X, typename Y, typename... Z> 3398 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3399 getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 3400 3401 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> 3402 getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 3403 3404 template <typename StructureChain> 3405 VULKAN_HPP_NODISCARD std::vector<StructureChain> getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 3406 3407 //=== VK_KHR_get_display_properties2 === 3408 3409 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> getDisplayProperties2KHR() const; 3410 3411 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> getDisplayPlaneProperties2KHR() const; 3412 3413 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR 3414 getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo ) const; 3415 3416 //=== VK_EXT_sample_locations === 3417 3418 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT 3419 getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT; 3420 3421 //=== VK_EXT_calibrated_timestamps === 3422 3423 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> getCalibrateableTimeDomainsEXT() const; 3424 3425 //=== VK_KHR_fragment_shading_rate === 3426 3427 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> getFragmentShadingRatesKHR() const; 3428 3429 //=== VK_EXT_tooling_info === 3430 3431 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> getToolPropertiesEXT() const; 3432 3433 //=== VK_NV_cooperative_matrix === 3434 3435 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> getCooperativeMatrixPropertiesNV() const; 3436 3437 //=== VK_NV_coverage_reduction_mode === 3438 3439 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> getSupportedFramebufferMixedSamplesCombinationsNV() const; 3440 3441 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 3442 //=== VK_EXT_full_screen_exclusive === 3443 3444 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> 3445 getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 3446 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3447 3448 //=== VK_EXT_acquire_drm_display === 3449 3450 void acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const; 3451 3452 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type 3453 getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3454 3455 //=== VK_KHR_video_encode_queue === 3456 3457 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR 3458 getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const; 3459 3460 template <typename X, typename Y, typename... Z> 3461 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3462 getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const; 3463 3464 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 3465 //=== VK_NV_acquire_winrt_display === 3466 3467 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type 3468 getWinrtDisplayNV( uint32_t deviceRelativeId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3469 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3470 3471 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 3472 //=== VK_EXT_directfb_surface === 3473 3474 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, 3475 IDirectFB & dfb ) const VULKAN_HPP_NOEXCEPT; 3476 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 3477 3478 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 3479 //=== VK_QNX_screen_surface === 3480 3481 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, 3482 struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT; 3483 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 3484 3485 //=== VK_NV_optical_flow === 3486 3487 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV> 3488 getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo ) const; 3489 3490 //=== VK_KHR_cooperative_matrix === 3491 3492 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR> getCooperativeMatrixPropertiesKHR() const; 3493 3494 //=== VK_KHR_calibrated_timestamps === 3495 3496 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> getCalibrateableTimeDomainsKHR() const; 3497 3498 private: 3499 VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice = {}; 3500 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 3501 }; 3502 3503 class PhysicalDevices : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> 3504 { 3505 public: 3506 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) PhysicalDevices(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance)3507 PhysicalDevices( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance ) 3508 { 3509 *this = instance.enumeratePhysicalDevices(); 3510 } 3511 # endif 3512 PhysicalDevices(std::nullptr_t)3513 PhysicalDevices( std::nullptr_t ) {} 3514 3515 PhysicalDevices() = delete; 3516 PhysicalDevices( PhysicalDevices const & ) = delete; 3517 PhysicalDevices( PhysicalDevices && rhs ) = default; 3518 PhysicalDevices & operator=( PhysicalDevices const & ) = delete; 3519 PhysicalDevices & operator=( PhysicalDevices && rhs ) = default; 3520 3521 private: PhysicalDevices(std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> && rhs)3522 PhysicalDevices( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> && rhs ) 3523 { 3524 std::swap( *this, rhs ); 3525 } 3526 }; 3527 3528 class Device 3529 { 3530 public: 3531 using CType = VkDevice; 3532 using CppType = VULKAN_HPP_NAMESPACE::Device; 3533 3534 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice; 3535 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 3536 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice; 3537 3538 public: 3539 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)3540 Device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 3541 VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & createInfo, 3542 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3543 { 3544 *this = physicalDevice.createDevice( createInfo, allocator ); 3545 } 3546 # endif 3547 Device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,VkDevice device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)3548 Device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, 3549 VkDevice device, 3550 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 3551 : m_device( device ), m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 3552 { 3553 m_dispatcher.reset( new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher( physicalDevice.getDispatcher()->vkGetDeviceProcAddr, 3554 static_cast<VkDevice>( m_device ) ) ); 3555 } 3556 Device(std::nullptr_t)3557 Device( std::nullptr_t ) {} 3558 ~Device()3559 ~Device() 3560 { 3561 clear(); 3562 } 3563 3564 Device() = delete; 3565 Device( Device const & ) = delete; 3566 Device(Device && rhs)3567 Device( Device && rhs ) VULKAN_HPP_NOEXCEPT 3568 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 3569 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 3570 , m_dispatcher( rhs.m_dispatcher.release() ) 3571 { 3572 } 3573 3574 Device & operator=( Device const & ) = delete; 3575 operator =(Device && rhs)3576 Device & operator=( Device && rhs ) VULKAN_HPP_NOEXCEPT 3577 { 3578 if ( this != &rhs ) 3579 { 3580 std::swap( m_device, rhs.m_device ); 3581 std::swap( m_allocator, rhs.m_allocator ); 3582 std::swap( m_dispatcher, rhs.m_dispatcher ); 3583 } 3584 return *this; 3585 } 3586 operator *() const3587 VULKAN_HPP_NAMESPACE::Device const & operator*() const VULKAN_HPP_NOEXCEPT 3588 { 3589 return m_device; 3590 } 3591 operator VULKAN_HPP_NAMESPACE::Device() const3592 operator VULKAN_HPP_NAMESPACE::Device() const VULKAN_HPP_NOEXCEPT 3593 { 3594 return m_device; 3595 } 3596 clear()3597 void clear() VULKAN_HPP_NOEXCEPT 3598 { 3599 if ( m_device ) 3600 { 3601 getDispatcher()->vkDestroyDevice( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 3602 } 3603 m_device = nullptr; 3604 m_allocator = nullptr; 3605 m_dispatcher = nullptr; 3606 } 3607 release()3608 VULKAN_HPP_NAMESPACE::Device release() 3609 { 3610 m_allocator = nullptr; 3611 m_dispatcher = nullptr; 3612 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_device, nullptr ); 3613 } 3614 getDispatcher() const3615 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 3616 { 3617 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 3618 return &*m_dispatcher; 3619 } 3620 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device & rhs)3621 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device & rhs ) VULKAN_HPP_NOEXCEPT 3622 { 3623 std::swap( m_device, rhs.m_device ); 3624 std::swap( m_allocator, rhs.m_allocator ); 3625 std::swap( m_dispatcher, rhs.m_dispatcher ); 3626 } 3627 3628 //=== VK_VERSION_1_0 === 3629 3630 VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT; 3631 3632 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue>::Type 3633 getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3634 3635 void waitIdle() const; 3636 3637 VULKAN_HPP_NODISCARD 3638 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory>::Type 3639 allocateMemory( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & allocateInfo, 3640 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3641 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3642 3643 void flushMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const; 3644 3645 void invalidateMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const; 3646 3647 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type 3648 createFence( VULKAN_HPP_NAMESPACE::FenceCreateInfo const & createInfo, 3649 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3650 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3651 3652 void resetFences( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences ) const; 3653 3654 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitForFences( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, 3655 VULKAN_HPP_NAMESPACE::Bool32 waitAll, 3656 uint64_t timeout ) const; 3657 3658 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore>::Type 3659 createSemaphore( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & createInfo, 3660 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3661 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3662 3663 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event>::Type 3664 createEvent( VULKAN_HPP_NAMESPACE::EventCreateInfo const & createInfo, 3665 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3666 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3667 3668 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool>::Type 3669 createQueryPool( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & createInfo, 3670 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3671 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3672 3673 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer>::Type 3674 createBuffer( VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo, 3675 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3676 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3677 3678 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView>::Type 3679 createBufferView( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & createInfo, 3680 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3681 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3682 3683 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image>::Type 3684 createImage( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & createInfo, 3685 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3686 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3687 3688 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView>::Type 3689 createImageView( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & createInfo, 3690 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3691 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3692 3693 VULKAN_HPP_NODISCARD 3694 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule>::Type 3695 createShaderModule( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & createInfo, 3696 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3697 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3698 3699 VULKAN_HPP_NODISCARD 3700 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache>::Type 3701 createPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & createInfo, 3702 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3703 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3704 3705 VULKAN_HPP_NODISCARD 3706 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type 3707 createGraphicsPipelines( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 3708 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, 3709 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; 3710 3711 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type 3712 createGraphicsPipeline( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 3713 VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & createInfo, 3714 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3715 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3716 3717 VULKAN_HPP_NODISCARD 3718 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type 3719 createComputePipelines( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 3720 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, 3721 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; 3722 3723 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type 3724 createComputePipeline( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 3725 VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & createInfo, 3726 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3727 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3728 3729 VULKAN_HPP_NODISCARD 3730 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout>::Type 3731 createPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & createInfo, 3732 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3733 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3734 3735 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler>::Type 3736 createSampler( VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & createInfo, 3737 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3738 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3739 3740 VULKAN_HPP_NODISCARD 3741 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout>::Type 3742 createDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & createInfo, 3743 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3744 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3745 3746 VULKAN_HPP_NODISCARD 3747 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool>::Type 3748 createDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & createInfo, 3749 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3750 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3751 3752 VULKAN_HPP_NODISCARD 3753 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>>::Type 3754 allocateDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) const; 3755 3756 void updateDescriptorSets( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites, 3757 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies ) const 3758 VULKAN_HPP_NOEXCEPT; 3759 3760 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer>::Type 3761 createFramebuffer( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & createInfo, 3762 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3763 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3764 3765 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type 3766 createRenderPass( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & createInfo, 3767 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3768 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3769 3770 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool>::Type 3771 createCommandPool( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & createInfo, 3772 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3773 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3774 3775 VULKAN_HPP_NODISCARD 3776 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>>::Type 3777 allocateCommandBuffers( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) const; 3778 3779 //=== VK_VERSION_1_1 === 3780 3781 void bindBufferMemory2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const; 3782 3783 void bindImageMemory2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const; 3784 3785 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags 3786 getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT; 3787 3788 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 3789 getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3790 3791 template <typename X, typename Y, typename... Z> 3792 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3793 getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3794 3795 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 3796 getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3797 3798 template <typename X, typename Y, typename... Z> 3799 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3800 getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 3801 3802 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> 3803 getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const; 3804 3805 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue>::Type 3806 getQueue2( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3807 3808 VULKAN_HPP_NODISCARD 3809 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion>::Type 3810 createSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo, 3811 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3812 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3813 3814 VULKAN_HPP_NODISCARD 3815 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate>::Type 3816 createDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo, 3817 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3818 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3819 3820 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport 3821 getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 3822 3823 template <typename X, typename Y, typename... Z> 3824 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3825 getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 3826 3827 //=== VK_VERSION_1_2 === 3828 3829 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type 3830 createRenderPass2( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo, 3831 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3832 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3833 3834 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const; 3835 3836 void signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const; 3837 3838 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress 3839 getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 3840 3841 VULKAN_HPP_NODISCARD uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 3842 3843 VULKAN_HPP_NODISCARD uint64_t 3844 getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 3845 3846 //=== VK_VERSION_1_3 === 3847 3848 VULKAN_HPP_NODISCARD 3849 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot>::Type 3850 createPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & createInfo, 3851 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3852 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3853 3854 void setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 3855 uint64_t objectHandle, 3856 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, 3857 uint64_t data ) const; 3858 3859 VULKAN_HPP_NODISCARD uint64_t getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 3860 uint64_t objectHandle, 3861 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot ) const VULKAN_HPP_NOEXCEPT; 3862 3863 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 3864 getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT; 3865 3866 template <typename X, typename Y, typename... Z> 3867 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3868 getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT; 3869 3870 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 3871 getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT; 3872 3873 template <typename X, typename Y, typename... Z> 3874 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 3875 getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT; 3876 3877 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> 3878 getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const; 3879 3880 //=== VK_KHR_swapchain === 3881 3882 VULKAN_HPP_NODISCARD 3883 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>::Type 3884 createSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo, 3885 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3886 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3887 3888 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR getGroupPresentCapabilitiesKHR() const; 3889 3890 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR 3891 getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const; 3892 3893 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t> 3894 acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo ) const; 3895 3896 //=== VK_KHR_display_swapchain === 3897 3898 VULKAN_HPP_NODISCARD 3899 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>>::Type 3900 createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, 3901 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; 3902 3903 VULKAN_HPP_NODISCARD 3904 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>::Type 3905 createSharedSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo, 3906 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3907 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3908 3909 //=== VK_EXT_debug_marker === 3910 3911 void debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo ) const; 3912 3913 void debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo ) const; 3914 3915 //=== VK_KHR_video_queue === 3916 3917 VULKAN_HPP_NODISCARD 3918 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR>::Type 3919 createVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const & createInfo, 3920 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3921 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3922 3923 VULKAN_HPP_NODISCARD 3924 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR>::Type 3925 createVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const & createInfo, 3926 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3927 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3928 3929 //=== VK_NVX_binary_import === 3930 3931 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX>::Type 3932 createCuModuleNVX( VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const & createInfo, 3933 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3934 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3935 3936 VULKAN_HPP_NODISCARD 3937 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX>::Type 3938 createCuFunctionNVX( VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & createInfo, 3939 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3940 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3941 3942 //=== VK_NVX_image_view_handle === 3943 3944 VULKAN_HPP_NODISCARD uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info ) const VULKAN_HPP_NOEXCEPT; 3945 3946 //=== VK_KHR_device_group === 3947 3948 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags 3949 getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT; 3950 3951 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 3952 //=== VK_KHR_external_memory_win32 === 3953 3954 VULKAN_HPP_NODISCARD HANDLE getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const; 3955 3956 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR 3957 getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const; 3958 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3959 3960 //=== VK_KHR_external_memory_fd === 3961 3962 VULKAN_HPP_NODISCARD int getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo ) const; 3963 3964 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR 3965 getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const; 3966 3967 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 3968 //=== VK_KHR_external_semaphore_win32 === 3969 3970 void importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const; 3971 3972 VULKAN_HPP_NODISCARD HANDLE getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const; 3973 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 3974 3975 //=== VK_KHR_external_semaphore_fd === 3976 3977 void importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const; 3978 3979 VULKAN_HPP_NODISCARD int getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo ) const; 3980 3981 //=== VK_KHR_descriptor_update_template === 3982 3983 VULKAN_HPP_NODISCARD 3984 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate>::Type 3985 createDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo, 3986 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 3987 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 3988 3989 void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 3990 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator 3991 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 3992 3993 //=== VK_EXT_display_control === 3994 3995 void displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo ) const; 3996 3997 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type 3998 registerEventEXT( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfo, 3999 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4000 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4001 4002 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type 4003 registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, 4004 VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & displayEventInfo, 4005 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4006 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4007 4008 //=== VK_EXT_hdr_metadata === 4009 4010 void setHdrMetadataEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains, 4011 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata ) const; 4012 4013 //=== VK_KHR_create_renderpass2 === 4014 4015 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type 4016 createRenderPass2KHR( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo, 4017 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4018 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4019 4020 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 4021 //=== VK_KHR_external_fence_win32 === 4022 4023 void importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const; 4024 4025 VULKAN_HPP_NODISCARD HANDLE getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const; 4026 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 4027 4028 //=== VK_KHR_external_fence_fd === 4029 4030 void importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo ) const; 4031 4032 VULKAN_HPP_NODISCARD int getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo ) const; 4033 4034 //=== VK_KHR_performance_query === 4035 4036 void acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info ) const; 4037 4038 void releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT; 4039 4040 //=== VK_EXT_debug_utils === 4041 4042 void setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo ) const; 4043 4044 void setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo ) const; 4045 4046 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 4047 //=== VK_ANDROID_external_memory_android_hardware_buffer === 4048 4049 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID 4050 getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; 4051 4052 template <typename X, typename Y, typename... Z> 4053 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4054 getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const; 4055 4056 VULKAN_HPP_NODISCARD struct AHardwareBuffer * 4057 getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info ) const; 4058 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 4059 4060 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 4061 //=== VK_AMDX_shader_enqueue === 4062 4063 VULKAN_HPP_NODISCARD 4064 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type 4065 createExecutionGraphPipelinesAMDX( 4066 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 4067 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos, 4068 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; 4069 4070 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type 4071 createExecutionGraphPipelineAMDX( 4072 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 4073 VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const & createInfo, 4074 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4075 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 4076 4077 //=== VK_KHR_get_memory_requirements2 === 4078 4079 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 4080 getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 4081 4082 template <typename X, typename Y, typename... Z> 4083 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4084 getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 4085 4086 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 4087 getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 4088 4089 template <typename X, typename Y, typename... Z> 4090 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4091 getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT; 4092 4093 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> 4094 getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const; 4095 4096 //=== VK_KHR_acceleration_structure === 4097 4098 VULKAN_HPP_NODISCARD 4099 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR>::Type 4100 createAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & createInfo, 4101 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4102 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4103 4104 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result buildAccelerationStructuresKHR( 4105 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 4106 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 4107 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos ) const; 4108 4109 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 4110 copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 4111 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const; 4112 4113 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 4114 copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 4115 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const; 4116 4117 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 4118 copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 4119 const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const; 4120 4121 template <typename DataType> 4122 VULKAN_HPP_NODISCARD std::vector<DataType> writeAccelerationStructuresPropertiesKHR( 4123 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 4124 VULKAN_HPP_NAMESPACE::QueryType queryType, 4125 size_t dataSize, 4126 size_t stride ) const; 4127 4128 template <typename DataType> 4129 VULKAN_HPP_NODISCARD DataType writeAccelerationStructuresPropertyKHR( 4130 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 4131 VULKAN_HPP_NAMESPACE::QueryType queryType, 4132 size_t stride ) const; 4133 4134 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress 4135 getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 4136 4137 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR 4138 getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo ) const VULKAN_HPP_NOEXCEPT; 4139 4140 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR getAccelerationStructureBuildSizesKHR( 4141 VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, 4142 const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR & buildInfo, 4143 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & maxPrimitiveCounts VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 4144 4145 //=== VK_KHR_ray_tracing_pipeline === 4146 4147 VULKAN_HPP_NODISCARD 4148 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type 4149 createRayTracingPipelinesKHR( 4150 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, 4151 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 4152 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, 4153 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; 4154 4155 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type 4156 createRayTracingPipelineKHR( 4157 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, 4158 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 4159 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const & createInfo, 4160 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4161 4162 //=== VK_KHR_sampler_ycbcr_conversion === 4163 4164 VULKAN_HPP_NODISCARD 4165 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion>::Type 4166 createSamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo, 4167 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4168 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4169 4170 void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 4171 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator 4172 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 4173 4174 //=== VK_KHR_bind_memory2 === 4175 4176 void bindBufferMemory2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const; 4177 4178 void bindImageMemory2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const; 4179 4180 //=== VK_EXT_validation_cache === 4181 4182 VULKAN_HPP_NODISCARD 4183 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT>::Type 4184 createValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & createInfo, 4185 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4186 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4187 4188 //=== VK_NV_ray_tracing === 4189 4190 VULKAN_HPP_NODISCARD 4191 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV>::Type 4192 createAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & createInfo, 4193 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4194 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4195 4196 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( 4197 const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 4198 4199 template <typename X, typename Y, typename... Z> 4200 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV( 4201 const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 4202 4203 void bindAccelerationStructureMemoryNV( 4204 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos ) const; 4205 4206 VULKAN_HPP_NODISCARD 4207 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type 4208 createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 4209 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, 4210 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; 4211 4212 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type 4213 createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 4214 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & createInfo, 4215 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4216 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4217 4218 //=== VK_KHR_maintenance3 === 4219 4220 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport 4221 getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 4222 4223 template <typename X, typename Y, typename... Z> 4224 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4225 getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 4226 4227 //=== VK_EXT_external_memory_host === 4228 4229 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT 4230 getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const; 4231 4232 //=== VK_EXT_calibrated_timestamps === 4233 4234 VULKAN_HPP_NODISCARD std::pair<std::vector<uint64_t>, uint64_t> 4235 getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos ) const; 4236 4237 VULKAN_HPP_NODISCARD std::pair<uint64_t, uint64_t> 4238 getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const; 4239 4240 //=== VK_KHR_timeline_semaphore === 4241 4242 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout ) const; 4243 4244 void signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const; 4245 4246 //=== VK_INTEL_performance_query === 4247 4248 void initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo ) const; 4249 4250 void uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT; 4251 4252 VULKAN_HPP_NODISCARD 4253 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL>::Type 4254 acquirePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const 4255 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4256 4257 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PerformanceValueINTEL 4258 getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const; 4259 4260 //=== VK_EXT_buffer_device_address === 4261 4262 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress 4263 getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 4264 4265 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 4266 //=== VK_EXT_full_screen_exclusive === 4267 4268 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR 4269 getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const; 4270 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 4271 4272 //=== VK_KHR_buffer_device_address === 4273 4274 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress 4275 getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 4276 4277 VULKAN_HPP_NODISCARD uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 4278 4279 VULKAN_HPP_NODISCARD uint64_t 4280 getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT; 4281 4282 //=== VK_KHR_deferred_host_operations === 4283 4284 VULKAN_HPP_NODISCARD 4285 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR>::Type 4286 createDeferredOperationKHR( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4287 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4288 4289 //=== VK_KHR_pipeline_executable_properties === 4290 4291 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR> 4292 getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo ) const; 4293 4294 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR> 4295 getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const; 4296 4297 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR> 4298 getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const; 4299 4300 //=== VK_EXT_host_image_copy === 4301 4302 void copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT & copyMemoryToImageInfo ) const; 4303 4304 void copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT & copyImageToMemoryInfo ) const; 4305 4306 void copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT & copyImageToImageInfo ) const; 4307 4308 void transitionImageLayoutEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT> const & transitions ) const; 4309 4310 //=== VK_KHR_map_memory2 === 4311 4312 VULKAN_HPP_NODISCARD void * mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR & memoryMapInfo ) const; 4313 4314 void unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR & memoryUnmapInfo ) const; 4315 4316 //=== VK_EXT_swapchain_maintenance1 === 4317 4318 void releaseSwapchainImagesEXT( const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT & releaseInfo ) const; 4319 4320 //=== VK_NV_device_generated_commands === 4321 4322 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 4323 getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 4324 4325 template <typename X, typename Y, typename... Z> 4326 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4327 getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 4328 4329 VULKAN_HPP_NODISCARD 4330 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV>::Type 4331 createIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & createInfo, 4332 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4333 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4334 4335 //=== VK_EXT_private_data === 4336 4337 VULKAN_HPP_NODISCARD 4338 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot>::Type 4339 createPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & createInfo, 4340 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4341 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4342 4343 void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 4344 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator 4345 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 4346 4347 void setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 4348 uint64_t objectHandle, 4349 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, 4350 uint64_t data ) const; 4351 4352 VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 4353 uint64_t objectHandle, 4354 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot ) const VULKAN_HPP_NOEXCEPT; 4355 4356 //=== VK_KHR_video_encode_queue === 4357 4358 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t>> 4359 getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const; 4360 4361 template <typename X, typename Y, typename... Z> 4362 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t>> 4363 getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const; 4364 4365 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 4366 //=== VK_NV_cuda_kernel_launch === 4367 4368 VULKAN_HPP_NODISCARD 4369 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV>::Type 4370 createCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const & createInfo, 4371 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4372 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4373 4374 VULKAN_HPP_NODISCARD 4375 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV>::Type 4376 createCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const & createInfo, 4377 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4378 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4379 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 4380 4381 # if defined( VK_USE_PLATFORM_METAL_EXT ) 4382 //=== VK_EXT_metal_objects === 4383 4384 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT; 4385 4386 template <typename X, typename Y, typename... Z> 4387 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT; 4388 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 4389 4390 //=== VK_EXT_descriptor_buffer === 4391 4392 void getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, size_t dataSize, void * pDescriptor ) const VULKAN_HPP_NOEXCEPT; 4393 4394 template <typename DescriptorType> 4395 VULKAN_HPP_NODISCARD DescriptorType getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo ) const VULKAN_HPP_NOEXCEPT; 4396 4397 template <typename DataType> 4398 VULKAN_HPP_NODISCARD DataType getBufferOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT & info ) const; 4399 4400 template <typename DataType> 4401 VULKAN_HPP_NODISCARD DataType getImageOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT & info ) const; 4402 4403 template <typename DataType> 4404 VULKAN_HPP_NODISCARD DataType 4405 getImageViewOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT & info ) const; 4406 4407 template <typename DataType> 4408 VULKAN_HPP_NODISCARD DataType getSamplerOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT & info ) const; 4409 4410 template <typename DataType> 4411 VULKAN_HPP_NODISCARD DataType 4412 getAccelerationStructureOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT & info ) const; 4413 4414 //=== VK_EXT_device_fault === 4415 4416 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT> getFaultInfoEXT() const; 4417 4418 # if defined( VK_USE_PLATFORM_FUCHSIA ) 4419 //=== VK_FUCHSIA_external_memory === 4420 4421 VULKAN_HPP_NODISCARD zx_handle_t getMemoryZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; 4422 4423 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA 4424 getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle ) const; 4425 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 4426 4427 # if defined( VK_USE_PLATFORM_FUCHSIA ) 4428 //=== VK_FUCHSIA_external_semaphore === 4429 4430 void importSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const; 4431 4432 VULKAN_HPP_NODISCARD zx_handle_t 4433 getSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const; 4434 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 4435 4436 # if defined( VK_USE_PLATFORM_FUCHSIA ) 4437 //=== VK_FUCHSIA_buffer_collection === 4438 4439 VULKAN_HPP_NODISCARD 4440 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA>::Type 4441 createBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const & createInfo, 4442 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4443 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4444 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 4445 4446 //=== VK_NV_external_memory_rdma === 4447 4448 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::RemoteAddressNV 4449 getMemoryRemoteAddressNV( const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const; 4450 4451 //=== VK_EXT_pipeline_properties === 4452 4453 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::BaseOutStructure getPipelinePropertiesEXT( const VULKAN_HPP_NAMESPACE::PipelineInfoEXT & pipelineInfo ) const; 4454 4455 //=== VK_EXT_opacity_micromap === 4456 4457 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::MicromapEXT>::Type 4458 createMicromapEXT( VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const & createInfo, 4459 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4460 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4461 4462 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result 4463 buildMicromapsEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 4464 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos ) const; 4465 4466 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result copyMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 4467 const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info ) const; 4468 4469 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result copyMicromapToMemoryEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 4470 const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info ) const; 4471 4472 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result copyMemoryToMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 4473 const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info ) const; 4474 4475 template <typename DataType> 4476 VULKAN_HPP_NODISCARD std::vector<DataType> 4477 writeMicromapsPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps, 4478 VULKAN_HPP_NAMESPACE::QueryType queryType, 4479 size_t dataSize, 4480 size_t stride ) const; 4481 4482 template <typename DataType> 4483 VULKAN_HPP_NODISCARD DataType writeMicromapsPropertyEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps, 4484 VULKAN_HPP_NAMESPACE::QueryType queryType, 4485 size_t stride ) const; 4486 4487 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR 4488 getMicromapCompatibilityEXT( const VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT & versionInfo ) const VULKAN_HPP_NOEXCEPT; 4489 4490 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT 4491 getMicromapBuildSizesEXT( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, 4492 const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT & buildInfo ) const VULKAN_HPP_NOEXCEPT; 4493 4494 //=== VK_KHR_maintenance4 === 4495 4496 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 4497 getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT; 4498 4499 template <typename X, typename Y, typename... Z> 4500 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4501 getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT; 4502 4503 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 4504 getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT; 4505 4506 template <typename X, typename Y, typename... Z> 4507 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4508 getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT; 4509 4510 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> 4511 getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const; 4512 4513 //=== VK_VALVE_descriptor_set_host_mapping === 4514 4515 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE getDescriptorSetLayoutHostMappingInfoVALVE( 4516 const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE & bindingReference ) const VULKAN_HPP_NOEXCEPT; 4517 4518 //=== VK_NV_device_generated_commands_compute === 4519 4520 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 4521 getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 4522 4523 template <typename X, typename Y, typename... Z> 4524 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4525 getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 4526 4527 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress 4528 getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info ) const VULKAN_HPP_NOEXCEPT; 4529 4530 //=== VK_EXT_shader_module_identifier === 4531 4532 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT 4533 getShaderModuleCreateInfoIdentifierEXT( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT; 4534 4535 //=== VK_NV_optical_flow === 4536 4537 VULKAN_HPP_NODISCARD 4538 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV>::Type 4539 createOpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const & createInfo, 4540 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4541 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4542 4543 //=== VK_KHR_maintenance5 === 4544 4545 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D 4546 getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR & renderingAreaInfo ) const VULKAN_HPP_NOEXCEPT; 4547 4548 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR 4549 getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 4550 4551 template <typename X, typename Y, typename... Z> 4552 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 4553 getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 4554 4555 //=== VK_EXT_shader_object === 4556 4557 VULKAN_HPP_NODISCARD 4558 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>>::Type 4559 createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos, 4560 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const; 4561 4562 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>::Type 4563 createShaderEXT( VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const & createInfo, 4564 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const 4565 VULKAN_HPP_RAII_CREATE_NOEXCEPT; 4566 4567 //=== VK_QCOM_tile_properties === 4568 4569 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::TilePropertiesQCOM 4570 getDynamicRenderingTilePropertiesQCOM( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT; 4571 4572 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 4573 //=== VK_QNX_external_memory_screen_buffer === 4574 4575 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const; 4576 4577 template <typename X, typename Y, typename... Z> 4578 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const; 4579 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 4580 4581 //=== VK_KHR_calibrated_timestamps === 4582 4583 VULKAN_HPP_NODISCARD std::pair<std::vector<uint64_t>, uint64_t> 4584 getCalibratedTimestampsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos ) const; 4585 4586 VULKAN_HPP_NODISCARD std::pair<uint64_t, uint64_t> 4587 getCalibratedTimestampKHR( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const; 4588 4589 private: 4590 VULKAN_HPP_NAMESPACE::Device m_device = {}; 4591 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 4592 std::unique_ptr<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher> m_dispatcher; 4593 }; 4594 4595 class AccelerationStructureKHR 4596 { 4597 public: 4598 using CType = VkAccelerationStructureKHR; 4599 using CppType = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; 4600 4601 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR; 4602 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 4603 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR; 4604 4605 public: 4606 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)4607 AccelerationStructureKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4608 VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & createInfo, 4609 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4610 { 4611 *this = device.createAccelerationStructureKHR( createInfo, allocator ); 4612 } 4613 # endif 4614 AccelerationStructureKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkAccelerationStructureKHR accelerationStructure,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4615 AccelerationStructureKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4616 VkAccelerationStructureKHR accelerationStructure, 4617 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4618 : m_device( device ) 4619 , m_accelerationStructure( accelerationStructure ) 4620 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 4621 , m_dispatcher( device.getDispatcher() ) 4622 { 4623 } 4624 AccelerationStructureKHR(std::nullptr_t)4625 AccelerationStructureKHR( std::nullptr_t ) {} 4626 ~AccelerationStructureKHR()4627 ~AccelerationStructureKHR() 4628 { 4629 clear(); 4630 } 4631 4632 AccelerationStructureKHR() = delete; 4633 AccelerationStructureKHR( AccelerationStructureKHR const & ) = delete; 4634 AccelerationStructureKHR(AccelerationStructureKHR && rhs)4635 AccelerationStructureKHR( AccelerationStructureKHR && rhs ) VULKAN_HPP_NOEXCEPT 4636 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 4637 , m_accelerationStructure( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructure, {} ) ) 4638 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 4639 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 4640 { 4641 } 4642 4643 AccelerationStructureKHR & operator=( AccelerationStructureKHR const & ) = delete; 4644 operator =(AccelerationStructureKHR && rhs)4645 AccelerationStructureKHR & operator=( AccelerationStructureKHR && rhs ) VULKAN_HPP_NOEXCEPT 4646 { 4647 if ( this != &rhs ) 4648 { 4649 std::swap( m_device, rhs.m_device ); 4650 std::swap( m_accelerationStructure, rhs.m_accelerationStructure ); 4651 std::swap( m_allocator, rhs.m_allocator ); 4652 std::swap( m_dispatcher, rhs.m_dispatcher ); 4653 } 4654 return *this; 4655 } 4656 operator *() const4657 VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & operator*() const VULKAN_HPP_NOEXCEPT 4658 { 4659 return m_accelerationStructure; 4660 } 4661 operator VULKAN_HPP_NAMESPACE::AccelerationStructureKHR() const4662 operator VULKAN_HPP_NAMESPACE::AccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT 4663 { 4664 return m_accelerationStructure; 4665 } 4666 clear()4667 void clear() VULKAN_HPP_NOEXCEPT 4668 { 4669 if ( m_accelerationStructure ) 4670 { 4671 getDispatcher()->vkDestroyAccelerationStructureKHR( static_cast<VkDevice>( m_device ), 4672 static_cast<VkAccelerationStructureKHR>( m_accelerationStructure ), 4673 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 4674 } 4675 m_device = nullptr; 4676 m_accelerationStructure = nullptr; 4677 m_allocator = nullptr; 4678 m_dispatcher = nullptr; 4679 } 4680 release()4681 VULKAN_HPP_NAMESPACE::AccelerationStructureKHR release() 4682 { 4683 m_device = nullptr; 4684 m_allocator = nullptr; 4685 m_dispatcher = nullptr; 4686 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_accelerationStructure, nullptr ); 4687 } 4688 getDevice() const4689 VULKAN_HPP_NAMESPACE::Device getDevice() const 4690 { 4691 return m_device; 4692 } 4693 getDispatcher() const4694 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 4695 { 4696 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 4697 return m_dispatcher; 4698 } 4699 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR & rhs)4700 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR & rhs ) VULKAN_HPP_NOEXCEPT 4701 { 4702 std::swap( m_device, rhs.m_device ); 4703 std::swap( m_accelerationStructure, rhs.m_accelerationStructure ); 4704 std::swap( m_allocator, rhs.m_allocator ); 4705 std::swap( m_dispatcher, rhs.m_dispatcher ); 4706 } 4707 4708 private: 4709 VULKAN_HPP_NAMESPACE::Device m_device = {}; 4710 VULKAN_HPP_NAMESPACE::AccelerationStructureKHR m_accelerationStructure = {}; 4711 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 4712 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 4713 }; 4714 4715 class AccelerationStructureNV 4716 { 4717 public: 4718 using CType = VkAccelerationStructureNV; 4719 using CppType = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; 4720 4721 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV; 4722 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 4723 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV; 4724 4725 public: 4726 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)4727 AccelerationStructureNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4728 VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & createInfo, 4729 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4730 { 4731 *this = device.createAccelerationStructureNV( createInfo, allocator ); 4732 } 4733 # endif 4734 AccelerationStructureNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkAccelerationStructureNV accelerationStructure,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4735 AccelerationStructureNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4736 VkAccelerationStructureNV accelerationStructure, 4737 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4738 : m_device( device ) 4739 , m_accelerationStructure( accelerationStructure ) 4740 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 4741 , m_dispatcher( device.getDispatcher() ) 4742 { 4743 } 4744 AccelerationStructureNV(std::nullptr_t)4745 AccelerationStructureNV( std::nullptr_t ) {} 4746 ~AccelerationStructureNV()4747 ~AccelerationStructureNV() 4748 { 4749 clear(); 4750 } 4751 4752 AccelerationStructureNV() = delete; 4753 AccelerationStructureNV( AccelerationStructureNV const & ) = delete; 4754 AccelerationStructureNV(AccelerationStructureNV && rhs)4755 AccelerationStructureNV( AccelerationStructureNV && rhs ) VULKAN_HPP_NOEXCEPT 4756 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 4757 , m_accelerationStructure( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_accelerationStructure, {} ) ) 4758 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 4759 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 4760 { 4761 } 4762 4763 AccelerationStructureNV & operator=( AccelerationStructureNV const & ) = delete; 4764 operator =(AccelerationStructureNV && rhs)4765 AccelerationStructureNV & operator=( AccelerationStructureNV && rhs ) VULKAN_HPP_NOEXCEPT 4766 { 4767 if ( this != &rhs ) 4768 { 4769 std::swap( m_device, rhs.m_device ); 4770 std::swap( m_accelerationStructure, rhs.m_accelerationStructure ); 4771 std::swap( m_allocator, rhs.m_allocator ); 4772 std::swap( m_dispatcher, rhs.m_dispatcher ); 4773 } 4774 return *this; 4775 } 4776 operator *() const4777 VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & operator*() const VULKAN_HPP_NOEXCEPT 4778 { 4779 return m_accelerationStructure; 4780 } 4781 operator VULKAN_HPP_NAMESPACE::AccelerationStructureNV() const4782 operator VULKAN_HPP_NAMESPACE::AccelerationStructureNV() const VULKAN_HPP_NOEXCEPT 4783 { 4784 return m_accelerationStructure; 4785 } 4786 clear()4787 void clear() VULKAN_HPP_NOEXCEPT 4788 { 4789 if ( m_accelerationStructure ) 4790 { 4791 getDispatcher()->vkDestroyAccelerationStructureNV( static_cast<VkDevice>( m_device ), 4792 static_cast<VkAccelerationStructureNV>( m_accelerationStructure ), 4793 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 4794 } 4795 m_device = nullptr; 4796 m_accelerationStructure = nullptr; 4797 m_allocator = nullptr; 4798 m_dispatcher = nullptr; 4799 } 4800 release()4801 VULKAN_HPP_NAMESPACE::AccelerationStructureNV release() 4802 { 4803 m_device = nullptr; 4804 m_allocator = nullptr; 4805 m_dispatcher = nullptr; 4806 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_accelerationStructure, nullptr ); 4807 } 4808 getDevice() const4809 VULKAN_HPP_NAMESPACE::Device getDevice() const 4810 { 4811 return m_device; 4812 } 4813 getDispatcher() const4814 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 4815 { 4816 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 4817 return m_dispatcher; 4818 } 4819 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV & rhs)4820 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV & rhs ) VULKAN_HPP_NOEXCEPT 4821 { 4822 std::swap( m_device, rhs.m_device ); 4823 std::swap( m_accelerationStructure, rhs.m_accelerationStructure ); 4824 std::swap( m_allocator, rhs.m_allocator ); 4825 std::swap( m_dispatcher, rhs.m_dispatcher ); 4826 } 4827 4828 //=== VK_NV_ray_tracing === 4829 4830 template <typename DataType> 4831 VULKAN_HPP_NODISCARD std::vector<DataType> getHandle( size_t dataSize ) const; 4832 4833 template <typename DataType> 4834 VULKAN_HPP_NODISCARD DataType getHandle() const; 4835 4836 private: 4837 VULKAN_HPP_NAMESPACE::Device m_device = {}; 4838 VULKAN_HPP_NAMESPACE::AccelerationStructureNV m_accelerationStructure = {}; 4839 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 4840 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 4841 }; 4842 4843 class Buffer 4844 { 4845 public: 4846 using CType = VkBuffer; 4847 using CppType = VULKAN_HPP_NAMESPACE::Buffer; 4848 4849 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer; 4850 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 4851 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer; 4852 4853 public: 4854 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)4855 Buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4856 VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo, 4857 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4858 { 4859 *this = device.createBuffer( createInfo, allocator ); 4860 } 4861 # endif 4862 Buffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkBuffer buffer,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4863 Buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4864 VkBuffer buffer, 4865 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4866 : m_device( device ) 4867 , m_buffer( buffer ) 4868 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 4869 , m_dispatcher( device.getDispatcher() ) 4870 { 4871 } 4872 Buffer(std::nullptr_t)4873 Buffer( std::nullptr_t ) {} 4874 ~Buffer()4875 ~Buffer() 4876 { 4877 clear(); 4878 } 4879 4880 Buffer() = delete; 4881 Buffer( Buffer const & ) = delete; 4882 Buffer(Buffer && rhs)4883 Buffer( Buffer && rhs ) VULKAN_HPP_NOEXCEPT 4884 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 4885 , m_buffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_buffer, {} ) ) 4886 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 4887 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 4888 { 4889 } 4890 4891 Buffer & operator=( Buffer const & ) = delete; 4892 operator =(Buffer && rhs)4893 Buffer & operator=( Buffer && rhs ) VULKAN_HPP_NOEXCEPT 4894 { 4895 if ( this != &rhs ) 4896 { 4897 std::swap( m_device, rhs.m_device ); 4898 std::swap( m_buffer, rhs.m_buffer ); 4899 std::swap( m_allocator, rhs.m_allocator ); 4900 std::swap( m_dispatcher, rhs.m_dispatcher ); 4901 } 4902 return *this; 4903 } 4904 operator *() const4905 VULKAN_HPP_NAMESPACE::Buffer const & operator*() const VULKAN_HPP_NOEXCEPT 4906 { 4907 return m_buffer; 4908 } 4909 operator VULKAN_HPP_NAMESPACE::Buffer() const4910 operator VULKAN_HPP_NAMESPACE::Buffer() const VULKAN_HPP_NOEXCEPT 4911 { 4912 return m_buffer; 4913 } 4914 clear()4915 void clear() VULKAN_HPP_NOEXCEPT 4916 { 4917 if ( m_buffer ) 4918 { 4919 getDispatcher()->vkDestroyBuffer( 4920 static_cast<VkDevice>( m_device ), static_cast<VkBuffer>( m_buffer ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 4921 } 4922 m_device = nullptr; 4923 m_buffer = nullptr; 4924 m_allocator = nullptr; 4925 m_dispatcher = nullptr; 4926 } 4927 release()4928 VULKAN_HPP_NAMESPACE::Buffer release() 4929 { 4930 m_device = nullptr; 4931 m_allocator = nullptr; 4932 m_dispatcher = nullptr; 4933 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_buffer, nullptr ); 4934 } 4935 getDevice() const4936 VULKAN_HPP_NAMESPACE::Device getDevice() const 4937 { 4938 return m_device; 4939 } 4940 getDispatcher() const4941 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 4942 { 4943 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 4944 return m_dispatcher; 4945 } 4946 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer & rhs)4947 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer & rhs ) VULKAN_HPP_NOEXCEPT 4948 { 4949 std::swap( m_device, rhs.m_device ); 4950 std::swap( m_buffer, rhs.m_buffer ); 4951 std::swap( m_allocator, rhs.m_allocator ); 4952 std::swap( m_dispatcher, rhs.m_dispatcher ); 4953 } 4954 4955 //=== VK_VERSION_1_0 === 4956 4957 void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const; 4958 4959 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT; 4960 4961 private: 4962 VULKAN_HPP_NAMESPACE::Device m_device = {}; 4963 VULKAN_HPP_NAMESPACE::Buffer m_buffer = {}; 4964 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 4965 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 4966 }; 4967 4968 # if defined( VK_USE_PLATFORM_FUCHSIA ) 4969 class BufferCollectionFUCHSIA 4970 { 4971 public: 4972 using CType = VkBufferCollectionFUCHSIA; 4973 using CppType = VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA; 4974 4975 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferCollectionFUCHSIA; 4976 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 4977 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA; 4978 4979 public: 4980 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)4981 BufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4982 VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const & createInfo, 4983 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4984 { 4985 *this = device.createBufferCollectionFUCHSIA( createInfo, allocator ); 4986 } 4987 # endif 4988 BufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkBufferCollectionFUCHSIA collection,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)4989 BufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 4990 VkBufferCollectionFUCHSIA collection, 4991 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 4992 : m_device( device ) 4993 , m_collection( collection ) 4994 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 4995 , m_dispatcher( device.getDispatcher() ) 4996 { 4997 } 4998 BufferCollectionFUCHSIA(std::nullptr_t)4999 BufferCollectionFUCHSIA( std::nullptr_t ) {} 5000 ~BufferCollectionFUCHSIA()5001 ~BufferCollectionFUCHSIA() 5002 { 5003 clear(); 5004 } 5005 5006 BufferCollectionFUCHSIA() = delete; 5007 BufferCollectionFUCHSIA( BufferCollectionFUCHSIA const & ) = delete; 5008 BufferCollectionFUCHSIA(BufferCollectionFUCHSIA && rhs)5009 BufferCollectionFUCHSIA( BufferCollectionFUCHSIA && rhs ) VULKAN_HPP_NOEXCEPT 5010 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 5011 , m_collection( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_collection, {} ) ) 5012 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 5013 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 5014 { 5015 } 5016 5017 BufferCollectionFUCHSIA & operator=( BufferCollectionFUCHSIA const & ) = delete; 5018 operator =(BufferCollectionFUCHSIA && rhs)5019 BufferCollectionFUCHSIA & operator=( BufferCollectionFUCHSIA && rhs ) VULKAN_HPP_NOEXCEPT 5020 { 5021 if ( this != &rhs ) 5022 { 5023 std::swap( m_device, rhs.m_device ); 5024 std::swap( m_collection, rhs.m_collection ); 5025 std::swap( m_allocator, rhs.m_allocator ); 5026 std::swap( m_dispatcher, rhs.m_dispatcher ); 5027 } 5028 return *this; 5029 } 5030 operator *() const5031 VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const & operator*() const VULKAN_HPP_NOEXCEPT 5032 { 5033 return m_collection; 5034 } 5035 operator VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA() const5036 operator VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA() const VULKAN_HPP_NOEXCEPT 5037 { 5038 return m_collection; 5039 } 5040 clear()5041 void clear() VULKAN_HPP_NOEXCEPT 5042 { 5043 if ( m_collection ) 5044 { 5045 getDispatcher()->vkDestroyBufferCollectionFUCHSIA( static_cast<VkDevice>( m_device ), 5046 static_cast<VkBufferCollectionFUCHSIA>( m_collection ), 5047 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 5048 } 5049 m_device = nullptr; 5050 m_collection = nullptr; 5051 m_allocator = nullptr; 5052 m_dispatcher = nullptr; 5053 } 5054 release()5055 VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA release() 5056 { 5057 m_device = nullptr; 5058 m_allocator = nullptr; 5059 m_dispatcher = nullptr; 5060 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_collection, nullptr ); 5061 } 5062 getDevice() const5063 VULKAN_HPP_NAMESPACE::Device getDevice() const 5064 { 5065 return m_device; 5066 } 5067 getDispatcher() const5068 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5069 { 5070 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5071 return m_dispatcher; 5072 } 5073 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA & rhs)5074 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA & rhs ) VULKAN_HPP_NOEXCEPT 5075 { 5076 std::swap( m_device, rhs.m_device ); 5077 std::swap( m_collection, rhs.m_collection ); 5078 std::swap( m_allocator, rhs.m_allocator ); 5079 std::swap( m_dispatcher, rhs.m_dispatcher ); 5080 } 5081 5082 //=== VK_FUCHSIA_buffer_collection === 5083 5084 void setImageConstraints( const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const; 5085 5086 void setBufferConstraints( const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const; 5087 5088 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA getProperties() const; 5089 5090 private: 5091 VULKAN_HPP_NAMESPACE::Device m_device = {}; 5092 VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA m_collection = {}; 5093 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 5094 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5095 }; 5096 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 5097 5098 class BufferView 5099 { 5100 public: 5101 using CType = VkBufferView; 5102 using CppType = VULKAN_HPP_NAMESPACE::BufferView; 5103 5104 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView; 5105 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5106 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView; 5107 5108 public: 5109 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)5110 BufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5111 VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & createInfo, 5112 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5113 { 5114 *this = device.createBufferView( createInfo, allocator ); 5115 } 5116 # endif 5117 BufferView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkBufferView bufferView,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5118 BufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5119 VkBufferView bufferView, 5120 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5121 : m_device( device ) 5122 , m_bufferView( bufferView ) 5123 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 5124 , m_dispatcher( device.getDispatcher() ) 5125 { 5126 } 5127 BufferView(std::nullptr_t)5128 BufferView( std::nullptr_t ) {} 5129 ~BufferView()5130 ~BufferView() 5131 { 5132 clear(); 5133 } 5134 5135 BufferView() = delete; 5136 BufferView( BufferView const & ) = delete; 5137 BufferView(BufferView && rhs)5138 BufferView( BufferView && rhs ) VULKAN_HPP_NOEXCEPT 5139 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 5140 , m_bufferView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_bufferView, {} ) ) 5141 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 5142 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 5143 { 5144 } 5145 5146 BufferView & operator=( BufferView const & ) = delete; 5147 operator =(BufferView && rhs)5148 BufferView & operator=( BufferView && rhs ) VULKAN_HPP_NOEXCEPT 5149 { 5150 if ( this != &rhs ) 5151 { 5152 std::swap( m_device, rhs.m_device ); 5153 std::swap( m_bufferView, rhs.m_bufferView ); 5154 std::swap( m_allocator, rhs.m_allocator ); 5155 std::swap( m_dispatcher, rhs.m_dispatcher ); 5156 } 5157 return *this; 5158 } 5159 operator *() const5160 VULKAN_HPP_NAMESPACE::BufferView const & operator*() const VULKAN_HPP_NOEXCEPT 5161 { 5162 return m_bufferView; 5163 } 5164 operator VULKAN_HPP_NAMESPACE::BufferView() const5165 operator VULKAN_HPP_NAMESPACE::BufferView() const VULKAN_HPP_NOEXCEPT 5166 { 5167 return m_bufferView; 5168 } 5169 clear()5170 void clear() VULKAN_HPP_NOEXCEPT 5171 { 5172 if ( m_bufferView ) 5173 { 5174 getDispatcher()->vkDestroyBufferView( 5175 static_cast<VkDevice>( m_device ), static_cast<VkBufferView>( m_bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 5176 } 5177 m_device = nullptr; 5178 m_bufferView = nullptr; 5179 m_allocator = nullptr; 5180 m_dispatcher = nullptr; 5181 } 5182 release()5183 VULKAN_HPP_NAMESPACE::BufferView release() 5184 { 5185 m_device = nullptr; 5186 m_allocator = nullptr; 5187 m_dispatcher = nullptr; 5188 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_bufferView, nullptr ); 5189 } 5190 getDevice() const5191 VULKAN_HPP_NAMESPACE::Device getDevice() const 5192 { 5193 return m_device; 5194 } 5195 getDispatcher() const5196 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5197 { 5198 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5199 return m_dispatcher; 5200 } 5201 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView & rhs)5202 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView & rhs ) VULKAN_HPP_NOEXCEPT 5203 { 5204 std::swap( m_device, rhs.m_device ); 5205 std::swap( m_bufferView, rhs.m_bufferView ); 5206 std::swap( m_allocator, rhs.m_allocator ); 5207 std::swap( m_dispatcher, rhs.m_dispatcher ); 5208 } 5209 5210 private: 5211 VULKAN_HPP_NAMESPACE::Device m_device = {}; 5212 VULKAN_HPP_NAMESPACE::BufferView m_bufferView = {}; 5213 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 5214 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5215 }; 5216 5217 class CommandPool 5218 { 5219 public: 5220 using CType = VkCommandPool; 5221 using CppType = VULKAN_HPP_NAMESPACE::CommandPool; 5222 5223 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool; 5224 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5225 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool; 5226 5227 public: 5228 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)5229 CommandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5230 VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & createInfo, 5231 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5232 { 5233 *this = device.createCommandPool( createInfo, allocator ); 5234 } 5235 # endif 5236 CommandPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCommandPool commandPool,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)5237 CommandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 5238 VkCommandPool commandPool, 5239 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 5240 : m_device( device ) 5241 , m_commandPool( commandPool ) 5242 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 5243 , m_dispatcher( device.getDispatcher() ) 5244 { 5245 } 5246 CommandPool(std::nullptr_t)5247 CommandPool( std::nullptr_t ) {} 5248 ~CommandPool()5249 ~CommandPool() 5250 { 5251 clear(); 5252 } 5253 5254 CommandPool() = delete; 5255 CommandPool( CommandPool const & ) = delete; 5256 CommandPool(CommandPool && rhs)5257 CommandPool( CommandPool && rhs ) VULKAN_HPP_NOEXCEPT 5258 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 5259 , m_commandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ) ) 5260 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 5261 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 5262 { 5263 } 5264 5265 CommandPool & operator=( CommandPool const & ) = delete; 5266 operator =(CommandPool && rhs)5267 CommandPool & operator=( CommandPool && rhs ) VULKAN_HPP_NOEXCEPT 5268 { 5269 if ( this != &rhs ) 5270 { 5271 std::swap( m_device, rhs.m_device ); 5272 std::swap( m_commandPool, rhs.m_commandPool ); 5273 std::swap( m_allocator, rhs.m_allocator ); 5274 std::swap( m_dispatcher, rhs.m_dispatcher ); 5275 } 5276 return *this; 5277 } 5278 operator *() const5279 VULKAN_HPP_NAMESPACE::CommandPool const & operator*() const VULKAN_HPP_NOEXCEPT 5280 { 5281 return m_commandPool; 5282 } 5283 operator VULKAN_HPP_NAMESPACE::CommandPool() const5284 operator VULKAN_HPP_NAMESPACE::CommandPool() const VULKAN_HPP_NOEXCEPT 5285 { 5286 return m_commandPool; 5287 } 5288 clear()5289 void clear() VULKAN_HPP_NOEXCEPT 5290 { 5291 if ( m_commandPool ) 5292 { 5293 getDispatcher()->vkDestroyCommandPool( 5294 static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 5295 } 5296 m_device = nullptr; 5297 m_commandPool = nullptr; 5298 m_allocator = nullptr; 5299 m_dispatcher = nullptr; 5300 } 5301 release()5302 VULKAN_HPP_NAMESPACE::CommandPool release() 5303 { 5304 m_device = nullptr; 5305 m_allocator = nullptr; 5306 m_dispatcher = nullptr; 5307 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_commandPool, nullptr ); 5308 } 5309 getDevice() const5310 VULKAN_HPP_NAMESPACE::Device getDevice() const 5311 { 5312 return m_device; 5313 } 5314 getDispatcher() const5315 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5316 { 5317 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5318 return m_dispatcher; 5319 } 5320 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool & rhs)5321 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool & rhs ) VULKAN_HPP_NOEXCEPT 5322 { 5323 std::swap( m_device, rhs.m_device ); 5324 std::swap( m_commandPool, rhs.m_commandPool ); 5325 std::swap( m_allocator, rhs.m_allocator ); 5326 std::swap( m_dispatcher, rhs.m_dispatcher ); 5327 } 5328 5329 //=== VK_VERSION_1_0 === 5330 5331 void reset( VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 5332 5333 //=== VK_VERSION_1_1 === 5334 5335 void trim( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 5336 5337 //=== VK_KHR_maintenance1 === 5338 5339 void trimKHR( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 5340 5341 private: 5342 VULKAN_HPP_NAMESPACE::Device m_device = {}; 5343 VULKAN_HPP_NAMESPACE::CommandPool m_commandPool = {}; 5344 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 5345 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 5346 }; 5347 5348 class CommandBuffer 5349 { 5350 public: 5351 using CType = VkCommandBuffer; 5352 using CppType = VULKAN_HPP_NAMESPACE::CommandBuffer; 5353 5354 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer; 5355 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 5356 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer; 5357 5358 public: CommandBuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCommandBuffer commandBuffer,VkCommandPool commandPool)5359 CommandBuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkCommandBuffer commandBuffer, VkCommandPool commandPool ) 5360 : m_device( device ), m_commandPool( commandPool ), m_commandBuffer( commandBuffer ), m_dispatcher( device.getDispatcher() ) 5361 { 5362 } 5363 CommandBuffer(std::nullptr_t)5364 CommandBuffer( std::nullptr_t ) {} 5365 ~CommandBuffer()5366 ~CommandBuffer() 5367 { 5368 clear(); 5369 } 5370 5371 CommandBuffer() = delete; 5372 CommandBuffer( CommandBuffer const & ) = delete; 5373 CommandBuffer(CommandBuffer && rhs)5374 CommandBuffer( CommandBuffer && rhs ) VULKAN_HPP_NOEXCEPT 5375 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 5376 , m_commandPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandPool, {} ) ) 5377 , m_commandBuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_commandBuffer, {} ) ) 5378 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 5379 { 5380 } 5381 5382 CommandBuffer & operator=( CommandBuffer const & ) = delete; 5383 operator =(CommandBuffer && rhs)5384 CommandBuffer & operator=( CommandBuffer && rhs ) VULKAN_HPP_NOEXCEPT 5385 { 5386 if ( this != &rhs ) 5387 { 5388 std::swap( m_device, rhs.m_device ); 5389 std::swap( m_commandPool, rhs.m_commandPool ); 5390 std::swap( m_commandBuffer, rhs.m_commandBuffer ); 5391 std::swap( m_dispatcher, rhs.m_dispatcher ); 5392 } 5393 return *this; 5394 } 5395 operator *() const5396 VULKAN_HPP_NAMESPACE::CommandBuffer const & operator*() const VULKAN_HPP_NOEXCEPT 5397 { 5398 return m_commandBuffer; 5399 } 5400 operator VULKAN_HPP_NAMESPACE::CommandBuffer() const5401 operator VULKAN_HPP_NAMESPACE::CommandBuffer() const VULKAN_HPP_NOEXCEPT 5402 { 5403 return m_commandBuffer; 5404 } 5405 clear()5406 void clear() VULKAN_HPP_NOEXCEPT 5407 { 5408 if ( m_commandBuffer ) 5409 { 5410 getDispatcher()->vkFreeCommandBuffers( 5411 static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), 1, reinterpret_cast<VkCommandBuffer const *>( &m_commandBuffer ) ); 5412 } 5413 m_device = nullptr; 5414 m_commandPool = nullptr; 5415 m_commandBuffer = nullptr; 5416 m_dispatcher = nullptr; 5417 } 5418 release()5419 VULKAN_HPP_NAMESPACE::CommandBuffer release() 5420 { 5421 m_device = nullptr; 5422 m_commandPool = nullptr; 5423 m_dispatcher = nullptr; 5424 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_commandBuffer, nullptr ); 5425 } 5426 getDevice() const5427 VULKAN_HPP_NAMESPACE::Device getDevice() const 5428 { 5429 return m_device; 5430 } 5431 getDispatcher() const5432 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 5433 { 5434 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 5435 return m_dispatcher; 5436 } 5437 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer & rhs)5438 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer & rhs ) VULKAN_HPP_NOEXCEPT 5439 { 5440 std::swap( m_device, rhs.m_device ); 5441 std::swap( m_commandPool, rhs.m_commandPool ); 5442 std::swap( m_commandBuffer, rhs.m_commandBuffer ); 5443 std::swap( m_dispatcher, rhs.m_dispatcher ); 5444 } 5445 5446 //=== VK_VERSION_1_0 === 5447 5448 void begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo ) const; 5449 5450 void end() const; 5451 5452 void reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 5453 5454 void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT; 5455 5456 void setViewport( uint32_t firstViewport, 5457 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT; 5458 5459 void setScissor( uint32_t firstScissor, VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT; 5460 5461 void setLineWidth( float lineWidth ) const VULKAN_HPP_NOEXCEPT; 5462 5463 void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT; 5464 5465 void setBlendConstants( const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT; 5466 5467 void setDepthBounds( float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT; 5468 5469 void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT; 5470 5471 void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT; 5472 5473 void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT; 5474 5475 void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 5476 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 5477 uint32_t firstSet, 5478 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, 5479 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & dynamicOffsets ) const VULKAN_HPP_NOEXCEPT; 5480 5481 void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, 5482 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5483 VULKAN_HPP_NAMESPACE::IndexType indexType ) const VULKAN_HPP_NOEXCEPT; 5484 5485 void bindVertexBuffers( uint32_t firstBinding, 5486 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 5487 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets ) const; 5488 5489 void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT; 5490 5491 void 5492 drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT; 5493 5494 void drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 5495 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5496 uint32_t drawCount, 5497 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 5498 5499 void drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 5500 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5501 uint32_t drawCount, 5502 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 5503 5504 void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT; 5505 5506 void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT; 5507 5508 void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, 5509 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 5510 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions ) const VULKAN_HPP_NOEXCEPT; 5511 5512 void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, 5513 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 5514 VULKAN_HPP_NAMESPACE::Image dstImage, 5515 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 5516 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT; 5517 5518 void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, 5519 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 5520 VULKAN_HPP_NAMESPACE::Image dstImage, 5521 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 5522 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions, 5523 VULKAN_HPP_NAMESPACE::Filter filter ) const VULKAN_HPP_NOEXCEPT; 5524 5525 void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, 5526 VULKAN_HPP_NAMESPACE::Image dstImage, 5527 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 5528 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT; 5529 5530 void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, 5531 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 5532 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 5533 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT; 5534 5535 template <typename DataType> 5536 void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 5537 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 5538 VULKAN_HPP_NAMESPACE::ArrayProxy<const DataType> const & data ) const VULKAN_HPP_NOEXCEPT; 5539 5540 void fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 5541 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 5542 VULKAN_HPP_NAMESPACE::DeviceSize size, 5543 uint32_t data ) const VULKAN_HPP_NOEXCEPT; 5544 5545 void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, 5546 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, 5547 const VULKAN_HPP_NAMESPACE::ClearColorValue & color, 5548 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const VULKAN_HPP_NOEXCEPT; 5549 5550 void 5551 clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, 5552 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, 5553 const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue & depthStencil, 5554 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const VULKAN_HPP_NOEXCEPT; 5555 5556 void clearAttachments( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments, 5557 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects ) const VULKAN_HPP_NOEXCEPT; 5558 5559 void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, 5560 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 5561 VULKAN_HPP_NAMESPACE::Image dstImage, 5562 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 5563 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions ) const VULKAN_HPP_NOEXCEPT; 5564 5565 void setEvent( VULKAN_HPP_NAMESPACE::Event event, 5566 VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 5567 5568 void resetEvent( VULKAN_HPP_NAMESPACE::Event event, 5569 VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 5570 5571 void waitEvents( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 5572 VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, 5573 VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, 5574 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, 5575 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, 5576 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT; 5577 5578 void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, 5579 VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, 5580 VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, 5581 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, 5582 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, 5583 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers ) const 5584 VULKAN_HPP_NOEXCEPT; 5585 5586 void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 5587 uint32_t query, 5588 VULKAN_HPP_NAMESPACE::QueryControlFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 5589 5590 void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT; 5591 5592 void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT; 5593 5594 void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, 5595 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 5596 uint32_t query ) const VULKAN_HPP_NOEXCEPT; 5597 5598 void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 5599 uint32_t firstQuery, 5600 uint32_t queryCount, 5601 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 5602 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 5603 VULKAN_HPP_NAMESPACE::DeviceSize stride, 5604 VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 5605 5606 template <typename ValuesType> 5607 void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, 5608 VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, 5609 uint32_t offset, 5610 VULKAN_HPP_NAMESPACE::ArrayProxy<const ValuesType> const & values ) const VULKAN_HPP_NOEXCEPT; 5611 5612 void beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 5613 VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT; 5614 5615 void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT; 5616 5617 void endRenderPass() const VULKAN_HPP_NOEXCEPT; 5618 5619 void executeCommands( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers ) const VULKAN_HPP_NOEXCEPT; 5620 5621 //=== VK_VERSION_1_1 === 5622 5623 void setDeviceMask( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT; 5624 5625 void dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const 5626 VULKAN_HPP_NOEXCEPT; 5627 5628 //=== VK_VERSION_1_2 === 5629 5630 void drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, 5631 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5632 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 5633 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 5634 uint32_t maxDrawCount, 5635 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 5636 5637 void drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, 5638 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5639 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 5640 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 5641 uint32_t maxDrawCount, 5642 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 5643 5644 void beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 5645 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT; 5646 5647 void nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo, 5648 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; 5649 5650 void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; 5651 5652 //=== VK_VERSION_1_3 === 5653 5654 void setEvent2( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT; 5655 5656 void resetEvent2( VULKAN_HPP_NAMESPACE::Event event, 5657 VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 5658 5659 void waitEvents2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 5660 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos ) const; 5661 5662 void pipelineBarrier2( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT; 5663 5664 void 5665 writeTimestamp2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT; 5666 5667 void copyBuffer2( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT; 5668 5669 void copyImage2( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo ) const VULKAN_HPP_NOEXCEPT; 5670 5671 void copyBufferToImage2( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT; 5672 5673 void copyImageToBuffer2( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT; 5674 5675 void blitImage2( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo ) const VULKAN_HPP_NOEXCEPT; 5676 5677 void resolveImage2( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT; 5678 5679 void beginRendering( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT; 5680 5681 void endRendering() const VULKAN_HPP_NOEXCEPT; 5682 5683 void setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 5684 5685 void setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT; 5686 5687 void setPrimitiveTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT; 5688 5689 void setViewportWithCount( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT; 5690 5691 void setScissorWithCount( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT; 5692 5693 void bindVertexBuffers2( 5694 uint32_t firstBinding, 5695 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 5696 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 5697 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, 5698 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 5699 5700 void setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT; 5701 5702 void setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT; 5703 5704 void setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT; 5705 5706 void setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT; 5707 5708 void setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT; 5709 5710 void setStencilOp( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 5711 VULKAN_HPP_NAMESPACE::StencilOp failOp, 5712 VULKAN_HPP_NAMESPACE::StencilOp passOp, 5713 VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, 5714 VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT; 5715 5716 void setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT; 5717 5718 void setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT; 5719 5720 void setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT; 5721 5722 //=== VK_EXT_debug_marker === 5723 5724 void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT; 5725 5726 void debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT; 5727 5728 void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT; 5729 5730 //=== VK_KHR_video_queue === 5731 5732 void beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo ) const VULKAN_HPP_NOEXCEPT; 5733 5734 void endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo ) const VULKAN_HPP_NOEXCEPT; 5735 5736 void controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo ) const VULKAN_HPP_NOEXCEPT; 5737 5738 //=== VK_KHR_video_decode_queue === 5739 5740 void decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo ) const VULKAN_HPP_NOEXCEPT; 5741 5742 //=== VK_EXT_transform_feedback === 5743 5744 void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, 5745 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 5746 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 5747 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes 5748 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 5749 5750 void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, 5751 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, 5752 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets 5753 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 5754 5755 void endTransformFeedbackEXT( uint32_t firstCounterBuffer, 5756 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, 5757 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets 5758 VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 5759 5760 void beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 5761 uint32_t query, 5762 VULKAN_HPP_NAMESPACE::QueryControlFlags flags, 5763 uint32_t index ) const VULKAN_HPP_NOEXCEPT; 5764 5765 void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT; 5766 5767 void drawIndirectByteCountEXT( uint32_t instanceCount, 5768 uint32_t firstInstance, 5769 VULKAN_HPP_NAMESPACE::Buffer counterBuffer, 5770 VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, 5771 uint32_t counterOffset, 5772 uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT; 5773 5774 //=== VK_NVX_binary_import === 5775 5776 void cuLaunchKernelNVX( const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo ) const VULKAN_HPP_NOEXCEPT; 5777 5778 //=== VK_AMD_draw_indirect_count === 5779 5780 void drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, 5781 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5782 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 5783 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 5784 uint32_t maxDrawCount, 5785 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 5786 5787 void drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, 5788 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5789 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 5790 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 5791 uint32_t maxDrawCount, 5792 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 5793 5794 //=== VK_KHR_dynamic_rendering === 5795 5796 void beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT; 5797 5798 void endRenderingKHR() const VULKAN_HPP_NOEXCEPT; 5799 5800 //=== VK_KHR_device_group === 5801 5802 void setDeviceMaskKHR( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT; 5803 5804 void dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) 5805 const VULKAN_HPP_NOEXCEPT; 5806 5807 //=== VK_KHR_push_descriptor === 5808 5809 void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 5810 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 5811 uint32_t set, 5812 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites ) const 5813 VULKAN_HPP_NOEXCEPT; 5814 5815 template <typename DataType> 5816 void pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 5817 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 5818 uint32_t set, 5819 DataType const & data ) const VULKAN_HPP_NOEXCEPT; 5820 5821 //=== VK_EXT_conditional_rendering === 5822 5823 void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT; 5824 5825 void endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT; 5826 5827 //=== VK_NV_clip_space_w_scaling === 5828 5829 void setViewportWScalingNV( uint32_t firstViewport, 5830 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings ) const 5831 VULKAN_HPP_NOEXCEPT; 5832 5833 //=== VK_EXT_discard_rectangles === 5834 5835 void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, 5836 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles ) const VULKAN_HPP_NOEXCEPT; 5837 5838 void setDiscardRectangleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable ) const VULKAN_HPP_NOEXCEPT; 5839 5840 void setDiscardRectangleModeEXT( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode ) const VULKAN_HPP_NOEXCEPT; 5841 5842 //=== VK_KHR_create_renderpass2 === 5843 5844 void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 5845 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT; 5846 5847 void nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo, 5848 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; 5849 5850 void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT; 5851 5852 //=== VK_EXT_debug_utils === 5853 5854 void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; 5855 5856 void endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT; 5857 5858 void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; 5859 5860 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 5861 //=== VK_AMDX_shader_enqueue === 5862 5863 void initializeGraphScratchMemoryAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch ) const VULKAN_HPP_NOEXCEPT; 5864 5865 void dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch, 5866 const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo ) const VULKAN_HPP_NOEXCEPT; 5867 5868 void dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch, 5869 const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo ) const VULKAN_HPP_NOEXCEPT; 5870 5871 void dispatchGraphIndirectCountAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch, 5872 VULKAN_HPP_NAMESPACE::DeviceAddress countInfo ) const VULKAN_HPP_NOEXCEPT; 5873 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 5874 5875 //=== VK_EXT_sample_locations === 5876 5877 void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT; 5878 5879 //=== VK_KHR_acceleration_structure === 5880 5881 void buildAccelerationStructuresKHR( 5882 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 5883 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos ) const; 5884 5885 void buildAccelerationStructuresIndirectKHR( 5886 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 5887 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses, 5888 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & indirectStrides, 5889 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts ) const; 5890 5891 void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 5892 5893 void copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 5894 5895 void copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT; 5896 5897 void writeAccelerationStructuresPropertiesKHR( 5898 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 5899 VULKAN_HPP_NAMESPACE::QueryType queryType, 5900 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 5901 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT; 5902 5903 //=== VK_KHR_ray_tracing_pipeline === 5904 5905 void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable, 5906 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable, 5907 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable, 5908 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable, 5909 uint32_t width, 5910 uint32_t height, 5911 uint32_t depth ) const VULKAN_HPP_NOEXCEPT; 5912 5913 void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable, 5914 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable, 5915 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable, 5916 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable, 5917 VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT; 5918 5919 void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT; 5920 5921 //=== VK_NV_shading_rate_image === 5922 5923 void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT; 5924 5925 void setViewportShadingRatePaletteNV( 5926 uint32_t firstViewport, 5927 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes ) const VULKAN_HPP_NOEXCEPT; 5928 5929 void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, 5930 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders ) const 5931 VULKAN_HPP_NOEXCEPT; 5932 5933 //=== VK_NV_ray_tracing === 5934 5935 void buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV & info, 5936 VULKAN_HPP_NAMESPACE::Buffer instanceData, 5937 VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, 5938 VULKAN_HPP_NAMESPACE::Bool32 update, 5939 VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, 5940 VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, 5941 VULKAN_HPP_NAMESPACE::Buffer scratch, 5942 VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT; 5943 5944 void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, 5945 VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, 5946 VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT; 5947 5948 void traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, 5949 VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, 5950 VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, 5951 VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, 5952 VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, 5953 VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, 5954 VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, 5955 VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, 5956 VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, 5957 VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, 5958 VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, 5959 uint32_t width, 5960 uint32_t height, 5961 uint32_t depth ) const VULKAN_HPP_NOEXCEPT; 5962 5963 void writeAccelerationStructuresPropertiesNV( 5964 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures, 5965 VULKAN_HPP_NAMESPACE::QueryType queryType, 5966 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 5967 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT; 5968 5969 //=== VK_KHR_draw_indirect_count === 5970 5971 void drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 5972 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5973 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 5974 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 5975 uint32_t maxDrawCount, 5976 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 5977 5978 void drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 5979 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5980 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 5981 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 5982 uint32_t maxDrawCount, 5983 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 5984 5985 //=== VK_AMD_buffer_marker === 5986 5987 void writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, 5988 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 5989 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 5990 uint32_t marker ) const VULKAN_HPP_NOEXCEPT; 5991 5992 //=== VK_NV_mesh_shader === 5993 5994 void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT; 5995 5996 void drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, 5997 VULKAN_HPP_NAMESPACE::DeviceSize offset, 5998 uint32_t drawCount, 5999 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 6000 6001 void drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, 6002 VULKAN_HPP_NAMESPACE::DeviceSize offset, 6003 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 6004 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 6005 uint32_t maxDrawCount, 6006 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 6007 6008 //=== VK_NV_scissor_exclusive === 6009 6010 void setExclusiveScissorEnableNV( uint32_t firstExclusiveScissor, 6011 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables ) const 6012 VULKAN_HPP_NOEXCEPT; 6013 6014 void setExclusiveScissorNV( uint32_t firstExclusiveScissor, 6015 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors ) const VULKAN_HPP_NOEXCEPT; 6016 6017 //=== VK_NV_device_diagnostic_checkpoints === 6018 6019 template <typename CheckpointMarkerType> 6020 void setCheckpointNV( CheckpointMarkerType const & checkpointMarker ) const VULKAN_HPP_NOEXCEPT; 6021 6022 //=== VK_INTEL_performance_query === 6023 6024 void setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo ) const; 6025 6026 void setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo ) const; 6027 6028 void setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo ) const; 6029 6030 //=== VK_KHR_fragment_shading_rate === 6031 6032 void setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D & fragmentSize, 6033 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT; 6034 6035 //=== VK_KHR_dynamic_rendering_local_read === 6036 6037 void setRenderingAttachmentLocationsKHR( const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfoKHR & locationInfo ) const VULKAN_HPP_NOEXCEPT; 6038 6039 void setRenderingInputAttachmentIndicesKHR( const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfoKHR & locationInfo ) const VULKAN_HPP_NOEXCEPT; 6040 6041 //=== VK_EXT_line_rasterization === 6042 6043 void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT; 6044 6045 //=== VK_EXT_extended_dynamic_state === 6046 6047 void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 6048 6049 void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT; 6050 6051 void setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT; 6052 6053 void setViewportWithCountEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT; 6054 6055 void setScissorWithCountEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT; 6056 6057 void bindVertexBuffers2EXT( 6058 uint32_t firstBinding, 6059 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 6060 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 6061 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, 6062 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const; 6063 6064 void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT; 6065 6066 void setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT; 6067 6068 void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT; 6069 6070 void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT; 6071 6072 void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT; 6073 6074 void setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 6075 VULKAN_HPP_NAMESPACE::StencilOp failOp, 6076 VULKAN_HPP_NAMESPACE::StencilOp passOp, 6077 VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, 6078 VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT; 6079 6080 //=== VK_NV_device_generated_commands === 6081 6082 void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT; 6083 6084 void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, 6085 const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT; 6086 6087 void bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 6088 VULKAN_HPP_NAMESPACE::Pipeline pipeline, 6089 uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT; 6090 6091 //=== VK_EXT_depth_bias_control === 6092 6093 void setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo ) const VULKAN_HPP_NOEXCEPT; 6094 6095 //=== VK_KHR_video_encode_queue === 6096 6097 void encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo ) const VULKAN_HPP_NOEXCEPT; 6098 6099 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 6100 //=== VK_NV_cuda_kernel_launch === 6101 6102 void cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo ) const VULKAN_HPP_NOEXCEPT; 6103 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 6104 6105 //=== VK_KHR_synchronization2 === 6106 6107 void setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT; 6108 6109 void resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, 6110 VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 6111 6112 void waitEvents2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 6113 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos ) const; 6114 6115 void pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT; 6116 6117 void writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage, 6118 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 6119 uint32_t query ) const VULKAN_HPP_NOEXCEPT; 6120 6121 void writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage, 6122 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 6123 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 6124 uint32_t marker ) const VULKAN_HPP_NOEXCEPT; 6125 6126 //=== VK_EXT_descriptor_buffer === 6127 6128 void bindDescriptorBuffersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT> const & bindingInfos ) const 6129 VULKAN_HPP_NOEXCEPT; 6130 6131 void setDescriptorBufferOffsetsEXT( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 6132 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 6133 uint32_t firstSet, 6134 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & bufferIndices, 6135 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets ) const; 6136 6137 void bindDescriptorBufferEmbeddedSamplersEXT( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 6138 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 6139 uint32_t set ) const VULKAN_HPP_NOEXCEPT; 6140 6141 //=== VK_NV_fragment_shading_rate_enums === 6142 6143 void setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, 6144 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT; 6145 6146 //=== VK_EXT_mesh_shader === 6147 6148 void drawMeshTasksEXT( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT; 6149 6150 void drawMeshTasksIndirectEXT( VULKAN_HPP_NAMESPACE::Buffer buffer, 6151 VULKAN_HPP_NAMESPACE::DeviceSize offset, 6152 uint32_t drawCount, 6153 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 6154 6155 void drawMeshTasksIndirectCountEXT( VULKAN_HPP_NAMESPACE::Buffer buffer, 6156 VULKAN_HPP_NAMESPACE::DeviceSize offset, 6157 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 6158 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 6159 uint32_t maxDrawCount, 6160 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 6161 6162 //=== VK_KHR_copy_commands2 === 6163 6164 void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT; 6165 6166 void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo ) const VULKAN_HPP_NOEXCEPT; 6167 6168 void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT; 6169 6170 void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT; 6171 6172 void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo ) const VULKAN_HPP_NOEXCEPT; 6173 6174 void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT; 6175 6176 //=== VK_EXT_vertex_input_dynamic_state === 6177 6178 void setVertexInputEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const & vertexBindingDescriptions, 6179 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & 6180 vertexAttributeDescriptions ) const VULKAN_HPP_NOEXCEPT; 6181 6182 //=== VK_HUAWEI_subpass_shading === 6183 6184 void subpassShadingHUAWEI() const VULKAN_HPP_NOEXCEPT; 6185 6186 //=== VK_HUAWEI_invocation_mask === 6187 6188 void bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT; 6189 6190 //=== VK_EXT_extended_dynamic_state2 === 6191 6192 void setPatchControlPointsEXT( uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT; 6193 6194 void setRasterizerDiscardEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT; 6195 6196 void setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT; 6197 6198 void setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp ) const VULKAN_HPP_NOEXCEPT; 6199 6200 void setPrimitiveRestartEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT; 6201 6202 //=== VK_EXT_color_write_enable === 6203 6204 void setColorWriteEnableEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables ) const VULKAN_HPP_NOEXCEPT; 6205 6206 //=== VK_KHR_ray_tracing_maintenance1 === 6207 6208 void traceRaysIndirect2KHR( VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT; 6209 6210 //=== VK_EXT_multi_draw === 6211 6212 void drawMultiEXT( VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const & vertexInfo, 6213 uint32_t instanceCount, 6214 uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT; 6215 6216 void drawMultiIndexedEXT( VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const & indexInfo, 6217 uint32_t instanceCount, 6218 uint32_t firstInstance, 6219 Optional<const int32_t> vertexOffset VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 6220 6221 //=== VK_EXT_opacity_micromap === 6222 6223 void buildMicromapsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos ) const VULKAN_HPP_NOEXCEPT; 6224 6225 void copyMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info ) const VULKAN_HPP_NOEXCEPT; 6226 6227 void copyMicromapToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info ) const VULKAN_HPP_NOEXCEPT; 6228 6229 void copyMemoryToMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info ) const VULKAN_HPP_NOEXCEPT; 6230 6231 void writeMicromapsPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps, 6232 VULKAN_HPP_NAMESPACE::QueryType queryType, 6233 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 6234 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT; 6235 6236 //=== VK_HUAWEI_cluster_culling_shader === 6237 6238 void drawClusterHUAWEI( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT; 6239 6240 void drawClusterIndirectHUAWEI( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT; 6241 6242 //=== VK_NV_copy_memory_indirect === 6243 6244 void copyMemoryIndirectNV( VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 6245 6246 void copyMemoryToImageIndirectNV( VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress, 6247 uint32_t stride, 6248 VULKAN_HPP_NAMESPACE::Image dstImage, 6249 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 6250 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceLayers> const & imageSubresources ) const 6251 VULKAN_HPP_NOEXCEPT; 6252 6253 //=== VK_NV_memory_decompression === 6254 6255 void decompressMemoryNV( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV> const & decompressMemoryRegions ) const 6256 VULKAN_HPP_NOEXCEPT; 6257 6258 void decompressMemoryIndirectCountNV( VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsAddress, 6259 VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsCountAddress, 6260 uint32_t stride ) const VULKAN_HPP_NOEXCEPT; 6261 6262 //=== VK_NV_device_generated_commands_compute === 6263 6264 void updatePipelineIndirectBufferNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 6265 VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT; 6266 6267 //=== VK_EXT_extended_dynamic_state3 === 6268 6269 void setDepthClampEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable ) const VULKAN_HPP_NOEXCEPT; 6270 6271 void setPolygonModeEXT( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode ) const VULKAN_HPP_NOEXCEPT; 6272 6273 void setRasterizationSamplesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples ) const VULKAN_HPP_NOEXCEPT; 6274 6275 void setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, 6276 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask ) const; 6277 6278 void setAlphaToCoverageEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable ) const VULKAN_HPP_NOEXCEPT; 6279 6280 void setAlphaToOneEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable ) const VULKAN_HPP_NOEXCEPT; 6281 6282 void setLogicOpEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable ) const VULKAN_HPP_NOEXCEPT; 6283 6284 void setColorBlendEnableEXT( uint32_t firstAttachment, 6285 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorBlendEnables ) const VULKAN_HPP_NOEXCEPT; 6286 6287 void setColorBlendEquationEXT( uint32_t firstAttachment, 6288 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT> const & colorBlendEquations ) const 6289 VULKAN_HPP_NOEXCEPT; 6290 6291 void setColorWriteMaskEXT( uint32_t firstAttachment, 6292 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorComponentFlags> const & colorWriteMasks ) const 6293 VULKAN_HPP_NOEXCEPT; 6294 6295 void setTessellationDomainOriginEXT( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin ) const VULKAN_HPP_NOEXCEPT; 6296 6297 void setRasterizationStreamEXT( uint32_t rasterizationStream ) const VULKAN_HPP_NOEXCEPT; 6298 6299 void 6300 setConservativeRasterizationModeEXT( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode ) const VULKAN_HPP_NOEXCEPT; 6301 6302 void setExtraPrimitiveOverestimationSizeEXT( float extraPrimitiveOverestimationSize ) const VULKAN_HPP_NOEXCEPT; 6303 6304 void setDepthClipEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable ) const VULKAN_HPP_NOEXCEPT; 6305 6306 void setSampleLocationsEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable ) const VULKAN_HPP_NOEXCEPT; 6307 6308 void setColorBlendAdvancedEXT( uint32_t firstAttachment, 6309 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT> const & colorBlendAdvanced ) const 6310 VULKAN_HPP_NOEXCEPT; 6311 6312 void setProvokingVertexModeEXT( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode ) const VULKAN_HPP_NOEXCEPT; 6313 6314 void setLineRasterizationModeEXT( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode ) const VULKAN_HPP_NOEXCEPT; 6315 6316 void setLineStippleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable ) const VULKAN_HPP_NOEXCEPT; 6317 6318 void setDepthClipNegativeOneToOneEXT( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne ) const VULKAN_HPP_NOEXCEPT; 6319 6320 void setViewportWScalingEnableNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable ) const VULKAN_HPP_NOEXCEPT; 6321 6322 void setViewportSwizzleNV( uint32_t firstViewport, 6323 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles ) const 6324 VULKAN_HPP_NOEXCEPT; 6325 6326 void setCoverageToColorEnableNV( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable ) const VULKAN_HPP_NOEXCEPT; 6327 6328 void setCoverageToColorLocationNV( uint32_t coverageToColorLocation ) const VULKAN_HPP_NOEXCEPT; 6329 6330 void setCoverageModulationModeNV( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode ) const VULKAN_HPP_NOEXCEPT; 6331 6332 void setCoverageModulationTableEnableNV( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable ) const VULKAN_HPP_NOEXCEPT; 6333 6334 void setCoverageModulationTableNV( VULKAN_HPP_NAMESPACE::ArrayProxy<const float> const & coverageModulationTable ) const VULKAN_HPP_NOEXCEPT; 6335 6336 void setShadingRateImageEnableNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable ) const VULKAN_HPP_NOEXCEPT; 6337 6338 void setRepresentativeFragmentTestEnableNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable ) const VULKAN_HPP_NOEXCEPT; 6339 6340 void setCoverageReductionModeNV( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode ) const VULKAN_HPP_NOEXCEPT; 6341 6342 //=== VK_NV_optical_flow === 6343 6344 void opticalFlowExecuteNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session, 6345 const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV & executeInfo ) const VULKAN_HPP_NOEXCEPT; 6346 6347 //=== VK_KHR_maintenance5 === 6348 6349 void bindIndexBuffer2KHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 6350 VULKAN_HPP_NAMESPACE::DeviceSize offset, 6351 VULKAN_HPP_NAMESPACE::DeviceSize size, 6352 VULKAN_HPP_NAMESPACE::IndexType indexType ) const VULKAN_HPP_NOEXCEPT; 6353 6354 //=== VK_EXT_shader_object === 6355 6356 void bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages, 6357 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & shaders ) const; 6358 6359 //=== VK_EXT_attachment_feedback_loop_dynamic_state === 6360 6361 void setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const 6362 VULKAN_HPP_NOEXCEPT; 6363 6364 //=== VK_KHR_line_rasterization === 6365 6366 void setLineStippleKHR( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT; 6367 6368 //=== VK_KHR_maintenance6 === 6369 6370 void bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR & bindDescriptorSetsInfo ) const VULKAN_HPP_NOEXCEPT; 6371 6372 void pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR & pushConstantsInfo ) const VULKAN_HPP_NOEXCEPT; 6373 6374 void pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR & pushDescriptorSetInfo ) const VULKAN_HPP_NOEXCEPT; 6375 6376 void pushDescriptorSetWithTemplate2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR & pushDescriptorSetWithTemplateInfo ) const 6377 VULKAN_HPP_NOEXCEPT; 6378 6379 void setDescriptorBufferOffsets2EXT( const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo ) const 6380 VULKAN_HPP_NOEXCEPT; 6381 6382 void bindDescriptorBufferEmbeddedSamplers2EXT( 6383 const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo ) const VULKAN_HPP_NOEXCEPT; 6384 6385 private: 6386 VULKAN_HPP_NAMESPACE::Device m_device = {}; 6387 VULKAN_HPP_NAMESPACE::CommandPool m_commandPool = {}; 6388 VULKAN_HPP_NAMESPACE::CommandBuffer m_commandBuffer = {}; 6389 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6390 }; 6391 6392 class CommandBuffers : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer> 6393 { 6394 public: 6395 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) CommandBuffers(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo)6396 CommandBuffers( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6397 VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) 6398 { 6399 *this = device.allocateCommandBuffers( allocateInfo ); 6400 } 6401 # endif 6402 CommandBuffers(std::nullptr_t)6403 CommandBuffers( std::nullptr_t ) {} 6404 6405 CommandBuffers() = delete; 6406 CommandBuffers( CommandBuffers const & ) = delete; 6407 CommandBuffers( CommandBuffers && rhs ) = default; 6408 CommandBuffers & operator=( CommandBuffers const & ) = delete; 6409 CommandBuffers & operator=( CommandBuffers && rhs ) = default; 6410 6411 private: CommandBuffers(std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer> && rhs)6412 CommandBuffers( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer> && rhs ) 6413 { 6414 std::swap( *this, rhs ); 6415 } 6416 }; 6417 6418 class CuFunctionNVX 6419 { 6420 public: 6421 using CType = VkCuFunctionNVX; 6422 using CppType = VULKAN_HPP_NAMESPACE::CuFunctionNVX; 6423 6424 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCuFunctionNVX; 6425 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6426 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX; 6427 6428 public: 6429 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)6430 CuFunctionNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6431 VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & createInfo, 6432 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6433 { 6434 *this = device.createCuFunctionNVX( createInfo, allocator ); 6435 } 6436 # endif 6437 CuFunctionNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCuFunctionNVX function,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6438 CuFunctionNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6439 VkCuFunctionNVX function, 6440 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6441 : m_device( device ) 6442 , m_function( function ) 6443 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 6444 , m_dispatcher( device.getDispatcher() ) 6445 { 6446 } 6447 CuFunctionNVX(std::nullptr_t)6448 CuFunctionNVX( std::nullptr_t ) {} 6449 ~CuFunctionNVX()6450 ~CuFunctionNVX() 6451 { 6452 clear(); 6453 } 6454 6455 CuFunctionNVX() = delete; 6456 CuFunctionNVX( CuFunctionNVX const & ) = delete; 6457 CuFunctionNVX(CuFunctionNVX && rhs)6458 CuFunctionNVX( CuFunctionNVX && rhs ) VULKAN_HPP_NOEXCEPT 6459 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 6460 , m_function( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_function, {} ) ) 6461 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 6462 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 6463 { 6464 } 6465 6466 CuFunctionNVX & operator=( CuFunctionNVX const & ) = delete; 6467 operator =(CuFunctionNVX && rhs)6468 CuFunctionNVX & operator=( CuFunctionNVX && rhs ) VULKAN_HPP_NOEXCEPT 6469 { 6470 if ( this != &rhs ) 6471 { 6472 std::swap( m_device, rhs.m_device ); 6473 std::swap( m_function, rhs.m_function ); 6474 std::swap( m_allocator, rhs.m_allocator ); 6475 std::swap( m_dispatcher, rhs.m_dispatcher ); 6476 } 6477 return *this; 6478 } 6479 operator *() const6480 VULKAN_HPP_NAMESPACE::CuFunctionNVX const & operator*() const VULKAN_HPP_NOEXCEPT 6481 { 6482 return m_function; 6483 } 6484 operator VULKAN_HPP_NAMESPACE::CuFunctionNVX() const6485 operator VULKAN_HPP_NAMESPACE::CuFunctionNVX() const VULKAN_HPP_NOEXCEPT 6486 { 6487 return m_function; 6488 } 6489 clear()6490 void clear() VULKAN_HPP_NOEXCEPT 6491 { 6492 if ( m_function ) 6493 { 6494 getDispatcher()->vkDestroyCuFunctionNVX( 6495 static_cast<VkDevice>( m_device ), static_cast<VkCuFunctionNVX>( m_function ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 6496 } 6497 m_device = nullptr; 6498 m_function = nullptr; 6499 m_allocator = nullptr; 6500 m_dispatcher = nullptr; 6501 } 6502 release()6503 VULKAN_HPP_NAMESPACE::CuFunctionNVX release() 6504 { 6505 m_device = nullptr; 6506 m_allocator = nullptr; 6507 m_dispatcher = nullptr; 6508 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_function, nullptr ); 6509 } 6510 getDevice() const6511 VULKAN_HPP_NAMESPACE::Device getDevice() const 6512 { 6513 return m_device; 6514 } 6515 getDispatcher() const6516 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6517 { 6518 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6519 return m_dispatcher; 6520 } 6521 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX & rhs)6522 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX & rhs ) VULKAN_HPP_NOEXCEPT 6523 { 6524 std::swap( m_device, rhs.m_device ); 6525 std::swap( m_function, rhs.m_function ); 6526 std::swap( m_allocator, rhs.m_allocator ); 6527 std::swap( m_dispatcher, rhs.m_dispatcher ); 6528 } 6529 6530 private: 6531 VULKAN_HPP_NAMESPACE::Device m_device = {}; 6532 VULKAN_HPP_NAMESPACE::CuFunctionNVX m_function = {}; 6533 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 6534 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6535 }; 6536 6537 class CuModuleNVX 6538 { 6539 public: 6540 using CType = VkCuModuleNVX; 6541 using CppType = VULKAN_HPP_NAMESPACE::CuModuleNVX; 6542 6543 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCuModuleNVX; 6544 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6545 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX; 6546 6547 public: 6548 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)6549 CuModuleNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6550 VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const & createInfo, 6551 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6552 { 6553 *this = device.createCuModuleNVX( createInfo, allocator ); 6554 } 6555 # endif 6556 CuModuleNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCuModuleNVX module,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6557 CuModuleNVX( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6558 VkCuModuleNVX module, 6559 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6560 : m_device( device ) 6561 , m_module( module ) 6562 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 6563 , m_dispatcher( device.getDispatcher() ) 6564 { 6565 } 6566 CuModuleNVX(std::nullptr_t)6567 CuModuleNVX( std::nullptr_t ) {} 6568 ~CuModuleNVX()6569 ~CuModuleNVX() 6570 { 6571 clear(); 6572 } 6573 6574 CuModuleNVX() = delete; 6575 CuModuleNVX( CuModuleNVX const & ) = delete; 6576 CuModuleNVX(CuModuleNVX && rhs)6577 CuModuleNVX( CuModuleNVX && rhs ) VULKAN_HPP_NOEXCEPT 6578 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 6579 , m_module( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_module, {} ) ) 6580 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 6581 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 6582 { 6583 } 6584 6585 CuModuleNVX & operator=( CuModuleNVX const & ) = delete; 6586 operator =(CuModuleNVX && rhs)6587 CuModuleNVX & operator=( CuModuleNVX && rhs ) VULKAN_HPP_NOEXCEPT 6588 { 6589 if ( this != &rhs ) 6590 { 6591 std::swap( m_device, rhs.m_device ); 6592 std::swap( m_module, rhs.m_module ); 6593 std::swap( m_allocator, rhs.m_allocator ); 6594 std::swap( m_dispatcher, rhs.m_dispatcher ); 6595 } 6596 return *this; 6597 } 6598 operator *() const6599 VULKAN_HPP_NAMESPACE::CuModuleNVX const & operator*() const VULKAN_HPP_NOEXCEPT 6600 { 6601 return m_module; 6602 } 6603 operator VULKAN_HPP_NAMESPACE::CuModuleNVX() const6604 operator VULKAN_HPP_NAMESPACE::CuModuleNVX() const VULKAN_HPP_NOEXCEPT 6605 { 6606 return m_module; 6607 } 6608 clear()6609 void clear() VULKAN_HPP_NOEXCEPT 6610 { 6611 if ( m_module ) 6612 { 6613 getDispatcher()->vkDestroyCuModuleNVX( 6614 static_cast<VkDevice>( m_device ), static_cast<VkCuModuleNVX>( m_module ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 6615 } 6616 m_device = nullptr; 6617 m_module = nullptr; 6618 m_allocator = nullptr; 6619 m_dispatcher = nullptr; 6620 } 6621 release()6622 VULKAN_HPP_NAMESPACE::CuModuleNVX release() 6623 { 6624 m_device = nullptr; 6625 m_allocator = nullptr; 6626 m_dispatcher = nullptr; 6627 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_module, nullptr ); 6628 } 6629 getDevice() const6630 VULKAN_HPP_NAMESPACE::Device getDevice() const 6631 { 6632 return m_device; 6633 } 6634 getDispatcher() const6635 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6636 { 6637 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6638 return m_dispatcher; 6639 } 6640 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX & rhs)6641 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX & rhs ) VULKAN_HPP_NOEXCEPT 6642 { 6643 std::swap( m_device, rhs.m_device ); 6644 std::swap( m_module, rhs.m_module ); 6645 std::swap( m_allocator, rhs.m_allocator ); 6646 std::swap( m_dispatcher, rhs.m_dispatcher ); 6647 } 6648 6649 private: 6650 VULKAN_HPP_NAMESPACE::Device m_device = {}; 6651 VULKAN_HPP_NAMESPACE::CuModuleNVX m_module = {}; 6652 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 6653 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6654 }; 6655 6656 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 6657 class CudaFunctionNV 6658 { 6659 public: 6660 using CType = VkCudaFunctionNV; 6661 using CppType = VULKAN_HPP_NAMESPACE::CudaFunctionNV; 6662 6663 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaFunctionNV; 6664 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6665 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaFunctionNV; 6666 6667 public: 6668 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) CudaFunctionNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6669 CudaFunctionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6670 VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const & createInfo, 6671 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6672 { 6673 *this = device.createCudaFunctionNV( createInfo, allocator ); 6674 } 6675 # endif 6676 CudaFunctionNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCudaFunctionNV function,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6677 CudaFunctionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6678 VkCudaFunctionNV function, 6679 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6680 : m_device( device ) 6681 , m_function( function ) 6682 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 6683 , m_dispatcher( device.getDispatcher() ) 6684 { 6685 } 6686 CudaFunctionNV(std::nullptr_t)6687 CudaFunctionNV( std::nullptr_t ) {} 6688 ~CudaFunctionNV()6689 ~CudaFunctionNV() 6690 { 6691 clear(); 6692 } 6693 6694 CudaFunctionNV() = delete; 6695 CudaFunctionNV( CudaFunctionNV const & ) = delete; 6696 CudaFunctionNV(CudaFunctionNV && rhs)6697 CudaFunctionNV( CudaFunctionNV && rhs ) VULKAN_HPP_NOEXCEPT 6698 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 6699 , m_function( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_function, {} ) ) 6700 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 6701 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 6702 { 6703 } 6704 6705 CudaFunctionNV & operator=( CudaFunctionNV const & ) = delete; 6706 operator =(CudaFunctionNV && rhs)6707 CudaFunctionNV & operator=( CudaFunctionNV && rhs ) VULKAN_HPP_NOEXCEPT 6708 { 6709 if ( this != &rhs ) 6710 { 6711 std::swap( m_device, rhs.m_device ); 6712 std::swap( m_function, rhs.m_function ); 6713 std::swap( m_allocator, rhs.m_allocator ); 6714 std::swap( m_dispatcher, rhs.m_dispatcher ); 6715 } 6716 return *this; 6717 } 6718 operator *() const6719 VULKAN_HPP_NAMESPACE::CudaFunctionNV const & operator*() const VULKAN_HPP_NOEXCEPT 6720 { 6721 return m_function; 6722 } 6723 operator VULKAN_HPP_NAMESPACE::CudaFunctionNV() const6724 operator VULKAN_HPP_NAMESPACE::CudaFunctionNV() const VULKAN_HPP_NOEXCEPT 6725 { 6726 return m_function; 6727 } 6728 clear()6729 void clear() VULKAN_HPP_NOEXCEPT 6730 { 6731 if ( m_function ) 6732 { 6733 getDispatcher()->vkDestroyCudaFunctionNV( 6734 static_cast<VkDevice>( m_device ), static_cast<VkCudaFunctionNV>( m_function ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 6735 } 6736 m_device = nullptr; 6737 m_function = nullptr; 6738 m_allocator = nullptr; 6739 m_dispatcher = nullptr; 6740 } 6741 release()6742 VULKAN_HPP_NAMESPACE::CudaFunctionNV release() 6743 { 6744 m_device = nullptr; 6745 m_allocator = nullptr; 6746 m_dispatcher = nullptr; 6747 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_function, nullptr ); 6748 } 6749 getDevice() const6750 VULKAN_HPP_NAMESPACE::Device getDevice() const 6751 { 6752 return m_device; 6753 } 6754 getDispatcher() const6755 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6756 { 6757 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6758 return m_dispatcher; 6759 } 6760 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV & rhs)6761 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV & rhs ) VULKAN_HPP_NOEXCEPT 6762 { 6763 std::swap( m_device, rhs.m_device ); 6764 std::swap( m_function, rhs.m_function ); 6765 std::swap( m_allocator, rhs.m_allocator ); 6766 std::swap( m_dispatcher, rhs.m_dispatcher ); 6767 } 6768 6769 private: 6770 VULKAN_HPP_NAMESPACE::Device m_device = {}; 6771 VULKAN_HPP_NAMESPACE::CudaFunctionNV m_function = {}; 6772 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 6773 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6774 }; 6775 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 6776 6777 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 6778 class CudaModuleNV 6779 { 6780 public: 6781 using CType = VkCudaModuleNV; 6782 using CppType = VULKAN_HPP_NAMESPACE::CudaModuleNV; 6783 6784 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCudaModuleNV; 6785 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6786 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCudaModuleNV; 6787 6788 public: 6789 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) CudaModuleNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6790 CudaModuleNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6791 VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const & createInfo, 6792 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6793 { 6794 *this = device.createCudaModuleNV( createInfo, allocator ); 6795 } 6796 # endif 6797 CudaModuleNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkCudaModuleNV module,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6798 CudaModuleNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 6799 VkCudaModuleNV module, 6800 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6801 : m_device( device ) 6802 , m_module( module ) 6803 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 6804 , m_dispatcher( device.getDispatcher() ) 6805 { 6806 } 6807 CudaModuleNV(std::nullptr_t)6808 CudaModuleNV( std::nullptr_t ) {} 6809 ~CudaModuleNV()6810 ~CudaModuleNV() 6811 { 6812 clear(); 6813 } 6814 6815 CudaModuleNV() = delete; 6816 CudaModuleNV( CudaModuleNV const & ) = delete; 6817 CudaModuleNV(CudaModuleNV && rhs)6818 CudaModuleNV( CudaModuleNV && rhs ) VULKAN_HPP_NOEXCEPT 6819 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 6820 , m_module( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_module, {} ) ) 6821 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 6822 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 6823 { 6824 } 6825 6826 CudaModuleNV & operator=( CudaModuleNV const & ) = delete; 6827 operator =(CudaModuleNV && rhs)6828 CudaModuleNV & operator=( CudaModuleNV && rhs ) VULKAN_HPP_NOEXCEPT 6829 { 6830 if ( this != &rhs ) 6831 { 6832 std::swap( m_device, rhs.m_device ); 6833 std::swap( m_module, rhs.m_module ); 6834 std::swap( m_allocator, rhs.m_allocator ); 6835 std::swap( m_dispatcher, rhs.m_dispatcher ); 6836 } 6837 return *this; 6838 } 6839 operator *() const6840 VULKAN_HPP_NAMESPACE::CudaModuleNV const & operator*() const VULKAN_HPP_NOEXCEPT 6841 { 6842 return m_module; 6843 } 6844 operator VULKAN_HPP_NAMESPACE::CudaModuleNV() const6845 operator VULKAN_HPP_NAMESPACE::CudaModuleNV() const VULKAN_HPP_NOEXCEPT 6846 { 6847 return m_module; 6848 } 6849 clear()6850 void clear() VULKAN_HPP_NOEXCEPT 6851 { 6852 if ( m_module ) 6853 { 6854 getDispatcher()->vkDestroyCudaModuleNV( 6855 static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( m_module ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 6856 } 6857 m_device = nullptr; 6858 m_module = nullptr; 6859 m_allocator = nullptr; 6860 m_dispatcher = nullptr; 6861 } 6862 release()6863 VULKAN_HPP_NAMESPACE::CudaModuleNV release() 6864 { 6865 m_device = nullptr; 6866 m_allocator = nullptr; 6867 m_dispatcher = nullptr; 6868 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_module, nullptr ); 6869 } 6870 getDevice() const6871 VULKAN_HPP_NAMESPACE::Device getDevice() const 6872 { 6873 return m_device; 6874 } 6875 getDispatcher() const6876 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 6877 { 6878 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 6879 return m_dispatcher; 6880 } 6881 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV & rhs)6882 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV & rhs ) VULKAN_HPP_NOEXCEPT 6883 { 6884 std::swap( m_device, rhs.m_device ); 6885 std::swap( m_module, rhs.m_module ); 6886 std::swap( m_allocator, rhs.m_allocator ); 6887 std::swap( m_dispatcher, rhs.m_dispatcher ); 6888 } 6889 6890 //=== VK_NV_cuda_kernel_launch === 6891 6892 VULKAN_HPP_NODISCARD std::vector<uint8_t> getCache() const; 6893 6894 private: 6895 VULKAN_HPP_NAMESPACE::Device m_device = {}; 6896 VULKAN_HPP_NAMESPACE::CudaModuleNV m_module = {}; 6897 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 6898 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 6899 }; 6900 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 6901 6902 class DebugReportCallbackEXT 6903 { 6904 public: 6905 using CType = VkDebugReportCallbackEXT; 6906 using CppType = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; 6907 6908 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT; 6909 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 6910 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT; 6911 6912 public: 6913 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)6914 DebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 6915 VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & createInfo, 6916 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6917 { 6918 *this = instance.createDebugReportCallbackEXT( createInfo, allocator ); 6919 } 6920 # endif 6921 DebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VkDebugReportCallbackEXT callback,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)6922 DebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 6923 VkDebugReportCallbackEXT callback, 6924 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 6925 : m_instance( instance ) 6926 , m_callback( callback ) 6927 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 6928 , m_dispatcher( instance.getDispatcher() ) 6929 { 6930 } 6931 DebugReportCallbackEXT(std::nullptr_t)6932 DebugReportCallbackEXT( std::nullptr_t ) {} 6933 ~DebugReportCallbackEXT()6934 ~DebugReportCallbackEXT() 6935 { 6936 clear(); 6937 } 6938 6939 DebugReportCallbackEXT() = delete; 6940 DebugReportCallbackEXT( DebugReportCallbackEXT const & ) = delete; 6941 DebugReportCallbackEXT(DebugReportCallbackEXT && rhs)6942 DebugReportCallbackEXT( DebugReportCallbackEXT && rhs ) VULKAN_HPP_NOEXCEPT 6943 : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) ) 6944 , m_callback( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_callback, {} ) ) 6945 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 6946 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 6947 { 6948 } 6949 6950 DebugReportCallbackEXT & operator=( DebugReportCallbackEXT const & ) = delete; 6951 operator =(DebugReportCallbackEXT && rhs)6952 DebugReportCallbackEXT & operator=( DebugReportCallbackEXT && rhs ) VULKAN_HPP_NOEXCEPT 6953 { 6954 if ( this != &rhs ) 6955 { 6956 std::swap( m_instance, rhs.m_instance ); 6957 std::swap( m_callback, rhs.m_callback ); 6958 std::swap( m_allocator, rhs.m_allocator ); 6959 std::swap( m_dispatcher, rhs.m_dispatcher ); 6960 } 6961 return *this; 6962 } 6963 operator *() const6964 VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & operator*() const VULKAN_HPP_NOEXCEPT 6965 { 6966 return m_callback; 6967 } 6968 operator VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT() const6969 operator VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT 6970 { 6971 return m_callback; 6972 } 6973 clear()6974 void clear() VULKAN_HPP_NOEXCEPT 6975 { 6976 if ( m_callback ) 6977 { 6978 getDispatcher()->vkDestroyDebugReportCallbackEXT( static_cast<VkInstance>( m_instance ), 6979 static_cast<VkDebugReportCallbackEXT>( m_callback ), 6980 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 6981 } 6982 m_instance = nullptr; 6983 m_callback = nullptr; 6984 m_allocator = nullptr; 6985 m_dispatcher = nullptr; 6986 } 6987 release()6988 VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT release() 6989 { 6990 m_instance = nullptr; 6991 m_allocator = nullptr; 6992 m_dispatcher = nullptr; 6993 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_callback, nullptr ); 6994 } 6995 getInstance() const6996 VULKAN_HPP_NAMESPACE::Instance getInstance() const 6997 { 6998 return m_instance; 6999 } 7000 getDispatcher() const7001 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 7002 { 7003 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7004 return m_dispatcher; 7005 } 7006 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT & rhs)7007 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT & rhs ) VULKAN_HPP_NOEXCEPT 7008 { 7009 std::swap( m_instance, rhs.m_instance ); 7010 std::swap( m_callback, rhs.m_callback ); 7011 std::swap( m_allocator, rhs.m_allocator ); 7012 std::swap( m_dispatcher, rhs.m_dispatcher ); 7013 } 7014 7015 private: 7016 VULKAN_HPP_NAMESPACE::Instance m_instance = {}; 7017 VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT m_callback = {}; 7018 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 7019 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 7020 }; 7021 7022 class DebugUtilsMessengerEXT 7023 { 7024 public: 7025 using CType = VkDebugUtilsMessengerEXT; 7026 using CppType = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT; 7027 7028 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT; 7029 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7030 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 7031 7032 public: 7033 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)7034 DebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 7035 VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & createInfo, 7036 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7037 { 7038 *this = instance.createDebugUtilsMessengerEXT( createInfo, allocator ); 7039 } 7040 # endif 7041 DebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VkDebugUtilsMessengerEXT messenger,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7042 DebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 7043 VkDebugUtilsMessengerEXT messenger, 7044 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7045 : m_instance( instance ) 7046 , m_messenger( messenger ) 7047 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 7048 , m_dispatcher( instance.getDispatcher() ) 7049 { 7050 } 7051 DebugUtilsMessengerEXT(std::nullptr_t)7052 DebugUtilsMessengerEXT( std::nullptr_t ) {} 7053 ~DebugUtilsMessengerEXT()7054 ~DebugUtilsMessengerEXT() 7055 { 7056 clear(); 7057 } 7058 7059 DebugUtilsMessengerEXT() = delete; 7060 DebugUtilsMessengerEXT( DebugUtilsMessengerEXT const & ) = delete; 7061 DebugUtilsMessengerEXT(DebugUtilsMessengerEXT && rhs)7062 DebugUtilsMessengerEXT( DebugUtilsMessengerEXT && rhs ) VULKAN_HPP_NOEXCEPT 7063 : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) ) 7064 , m_messenger( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_messenger, {} ) ) 7065 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 7066 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 7067 { 7068 } 7069 7070 DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT const & ) = delete; 7071 operator =(DebugUtilsMessengerEXT && rhs)7072 DebugUtilsMessengerEXT & operator=( DebugUtilsMessengerEXT && rhs ) VULKAN_HPP_NOEXCEPT 7073 { 7074 if ( this != &rhs ) 7075 { 7076 std::swap( m_instance, rhs.m_instance ); 7077 std::swap( m_messenger, rhs.m_messenger ); 7078 std::swap( m_allocator, rhs.m_allocator ); 7079 std::swap( m_dispatcher, rhs.m_dispatcher ); 7080 } 7081 return *this; 7082 } 7083 operator *() const7084 VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & operator*() const VULKAN_HPP_NOEXCEPT 7085 { 7086 return m_messenger; 7087 } 7088 operator VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT() const7089 operator VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT 7090 { 7091 return m_messenger; 7092 } 7093 clear()7094 void clear() VULKAN_HPP_NOEXCEPT 7095 { 7096 if ( m_messenger ) 7097 { 7098 getDispatcher()->vkDestroyDebugUtilsMessengerEXT( static_cast<VkInstance>( m_instance ), 7099 static_cast<VkDebugUtilsMessengerEXT>( m_messenger ), 7100 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 7101 } 7102 m_instance = nullptr; 7103 m_messenger = nullptr; 7104 m_allocator = nullptr; 7105 m_dispatcher = nullptr; 7106 } 7107 release()7108 VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT release() 7109 { 7110 m_instance = nullptr; 7111 m_allocator = nullptr; 7112 m_dispatcher = nullptr; 7113 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_messenger, nullptr ); 7114 } 7115 getInstance() const7116 VULKAN_HPP_NAMESPACE::Instance getInstance() const 7117 { 7118 return m_instance; 7119 } 7120 getDispatcher() const7121 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 7122 { 7123 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7124 return m_dispatcher; 7125 } 7126 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT & rhs)7127 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT & rhs ) VULKAN_HPP_NOEXCEPT 7128 { 7129 std::swap( m_instance, rhs.m_instance ); 7130 std::swap( m_messenger, rhs.m_messenger ); 7131 std::swap( m_allocator, rhs.m_allocator ); 7132 std::swap( m_dispatcher, rhs.m_dispatcher ); 7133 } 7134 7135 private: 7136 VULKAN_HPP_NAMESPACE::Instance m_instance = {}; 7137 VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT m_messenger = {}; 7138 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 7139 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 7140 }; 7141 7142 class DeferredOperationKHR 7143 { 7144 public: 7145 using CType = VkDeferredOperationKHR; 7146 using CppType = VULKAN_HPP_NAMESPACE::DeferredOperationKHR; 7147 7148 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR; 7149 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7150 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 7151 7152 public: 7153 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) DeferredOperationKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7154 DeferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7155 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7156 { 7157 *this = device.createDeferredOperationKHR( allocator ); 7158 } 7159 # endif 7160 DeferredOperationKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDeferredOperationKHR operation,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7161 DeferredOperationKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7162 VkDeferredOperationKHR operation, 7163 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7164 : m_device( device ) 7165 , m_operation( operation ) 7166 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 7167 , m_dispatcher( device.getDispatcher() ) 7168 { 7169 } 7170 DeferredOperationKHR(std::nullptr_t)7171 DeferredOperationKHR( std::nullptr_t ) {} 7172 ~DeferredOperationKHR()7173 ~DeferredOperationKHR() 7174 { 7175 clear(); 7176 } 7177 7178 DeferredOperationKHR() = delete; 7179 DeferredOperationKHR( DeferredOperationKHR const & ) = delete; 7180 DeferredOperationKHR(DeferredOperationKHR && rhs)7181 DeferredOperationKHR( DeferredOperationKHR && rhs ) VULKAN_HPP_NOEXCEPT 7182 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 7183 , m_operation( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_operation, {} ) ) 7184 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 7185 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 7186 { 7187 } 7188 7189 DeferredOperationKHR & operator=( DeferredOperationKHR const & ) = delete; 7190 operator =(DeferredOperationKHR && rhs)7191 DeferredOperationKHR & operator=( DeferredOperationKHR && rhs ) VULKAN_HPP_NOEXCEPT 7192 { 7193 if ( this != &rhs ) 7194 { 7195 std::swap( m_device, rhs.m_device ); 7196 std::swap( m_operation, rhs.m_operation ); 7197 std::swap( m_allocator, rhs.m_allocator ); 7198 std::swap( m_dispatcher, rhs.m_dispatcher ); 7199 } 7200 return *this; 7201 } 7202 operator *() const7203 VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & operator*() const VULKAN_HPP_NOEXCEPT 7204 { 7205 return m_operation; 7206 } 7207 operator VULKAN_HPP_NAMESPACE::DeferredOperationKHR() const7208 operator VULKAN_HPP_NAMESPACE::DeferredOperationKHR() const VULKAN_HPP_NOEXCEPT 7209 { 7210 return m_operation; 7211 } 7212 clear()7213 void clear() VULKAN_HPP_NOEXCEPT 7214 { 7215 if ( m_operation ) 7216 { 7217 getDispatcher()->vkDestroyDeferredOperationKHR( static_cast<VkDevice>( m_device ), 7218 static_cast<VkDeferredOperationKHR>( m_operation ), 7219 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 7220 } 7221 m_device = nullptr; 7222 m_operation = nullptr; 7223 m_allocator = nullptr; 7224 m_dispatcher = nullptr; 7225 } 7226 release()7227 VULKAN_HPP_NAMESPACE::DeferredOperationKHR release() 7228 { 7229 m_device = nullptr; 7230 m_allocator = nullptr; 7231 m_dispatcher = nullptr; 7232 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_operation, nullptr ); 7233 } 7234 getDevice() const7235 VULKAN_HPP_NAMESPACE::Device getDevice() const 7236 { 7237 return m_device; 7238 } 7239 getDispatcher() const7240 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7241 { 7242 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7243 return m_dispatcher; 7244 } 7245 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR & rhs)7246 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR & rhs ) VULKAN_HPP_NOEXCEPT 7247 { 7248 std::swap( m_device, rhs.m_device ); 7249 std::swap( m_operation, rhs.m_operation ); 7250 std::swap( m_allocator, rhs.m_allocator ); 7251 std::swap( m_dispatcher, rhs.m_dispatcher ); 7252 } 7253 7254 //=== VK_KHR_deferred_host_operations === 7255 7256 VULKAN_HPP_NODISCARD uint32_t getMaxConcurrency() const VULKAN_HPP_NOEXCEPT; 7257 7258 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getResult() const VULKAN_HPP_NOEXCEPT; 7259 7260 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result join() const; 7261 7262 private: 7263 VULKAN_HPP_NAMESPACE::Device m_device = {}; 7264 VULKAN_HPP_NAMESPACE::DeferredOperationKHR m_operation = {}; 7265 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 7266 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7267 }; 7268 7269 class DescriptorPool 7270 { 7271 public: 7272 using CType = VkDescriptorPool; 7273 using CppType = VULKAN_HPP_NAMESPACE::DescriptorPool; 7274 7275 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool; 7276 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7277 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool; 7278 7279 public: 7280 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)7281 DescriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7282 VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & createInfo, 7283 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7284 { 7285 *this = device.createDescriptorPool( createInfo, allocator ); 7286 } 7287 # endif 7288 DescriptorPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7289 DescriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7290 VkDescriptorPool descriptorPool, 7291 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7292 : m_device( device ) 7293 , m_descriptorPool( descriptorPool ) 7294 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 7295 , m_dispatcher( device.getDispatcher() ) 7296 { 7297 } 7298 DescriptorPool(std::nullptr_t)7299 DescriptorPool( std::nullptr_t ) {} 7300 ~DescriptorPool()7301 ~DescriptorPool() 7302 { 7303 clear(); 7304 } 7305 7306 DescriptorPool() = delete; 7307 DescriptorPool( DescriptorPool const & ) = delete; 7308 DescriptorPool(DescriptorPool && rhs)7309 DescriptorPool( DescriptorPool && rhs ) VULKAN_HPP_NOEXCEPT 7310 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 7311 , m_descriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ) ) 7312 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 7313 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 7314 { 7315 } 7316 7317 DescriptorPool & operator=( DescriptorPool const & ) = delete; 7318 operator =(DescriptorPool && rhs)7319 DescriptorPool & operator=( DescriptorPool && rhs ) VULKAN_HPP_NOEXCEPT 7320 { 7321 if ( this != &rhs ) 7322 { 7323 std::swap( m_device, rhs.m_device ); 7324 std::swap( m_descriptorPool, rhs.m_descriptorPool ); 7325 std::swap( m_allocator, rhs.m_allocator ); 7326 std::swap( m_dispatcher, rhs.m_dispatcher ); 7327 } 7328 return *this; 7329 } 7330 operator *() const7331 VULKAN_HPP_NAMESPACE::DescriptorPool const & operator*() const VULKAN_HPP_NOEXCEPT 7332 { 7333 return m_descriptorPool; 7334 } 7335 operator VULKAN_HPP_NAMESPACE::DescriptorPool() const7336 operator VULKAN_HPP_NAMESPACE::DescriptorPool() const VULKAN_HPP_NOEXCEPT 7337 { 7338 return m_descriptorPool; 7339 } 7340 clear()7341 void clear() VULKAN_HPP_NOEXCEPT 7342 { 7343 if ( m_descriptorPool ) 7344 { 7345 getDispatcher()->vkDestroyDescriptorPool( static_cast<VkDevice>( m_device ), 7346 static_cast<VkDescriptorPool>( m_descriptorPool ), 7347 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 7348 } 7349 m_device = nullptr; 7350 m_descriptorPool = nullptr; 7351 m_allocator = nullptr; 7352 m_dispatcher = nullptr; 7353 } 7354 release()7355 VULKAN_HPP_NAMESPACE::DescriptorPool release() 7356 { 7357 m_device = nullptr; 7358 m_allocator = nullptr; 7359 m_dispatcher = nullptr; 7360 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_descriptorPool, nullptr ); 7361 } 7362 getDevice() const7363 VULKAN_HPP_NAMESPACE::Device getDevice() const 7364 { 7365 return m_device; 7366 } 7367 getDispatcher() const7368 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7369 { 7370 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7371 return m_dispatcher; 7372 } 7373 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool & rhs)7374 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool & rhs ) VULKAN_HPP_NOEXCEPT 7375 { 7376 std::swap( m_device, rhs.m_device ); 7377 std::swap( m_descriptorPool, rhs.m_descriptorPool ); 7378 std::swap( m_allocator, rhs.m_allocator ); 7379 std::swap( m_dispatcher, rhs.m_dispatcher ); 7380 } 7381 7382 //=== VK_VERSION_1_0 === 7383 7384 void reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; 7385 7386 private: 7387 VULKAN_HPP_NAMESPACE::Device m_device = {}; 7388 VULKAN_HPP_NAMESPACE::DescriptorPool m_descriptorPool = {}; 7389 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 7390 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7391 }; 7392 7393 class DescriptorSet 7394 { 7395 public: 7396 using CType = VkDescriptorSet; 7397 using CppType = VULKAN_HPP_NAMESPACE::DescriptorSet; 7398 7399 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet; 7400 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7401 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet; 7402 7403 public: DescriptorSet(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDescriptorSet descriptorSet,VkDescriptorPool descriptorPool)7404 DescriptorSet( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkDescriptorSet descriptorSet, VkDescriptorPool descriptorPool ) 7405 : m_device( device ), m_descriptorPool( descriptorPool ), m_descriptorSet( descriptorSet ), m_dispatcher( device.getDispatcher() ) 7406 { 7407 } 7408 DescriptorSet(std::nullptr_t)7409 DescriptorSet( std::nullptr_t ) {} 7410 ~DescriptorSet()7411 ~DescriptorSet() 7412 { 7413 clear(); 7414 } 7415 7416 DescriptorSet() = delete; 7417 DescriptorSet( DescriptorSet const & ) = delete; 7418 DescriptorSet(DescriptorSet && rhs)7419 DescriptorSet( DescriptorSet && rhs ) VULKAN_HPP_NOEXCEPT 7420 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 7421 , m_descriptorPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorPool, {} ) ) 7422 , m_descriptorSet( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSet, {} ) ) 7423 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 7424 { 7425 } 7426 7427 DescriptorSet & operator=( DescriptorSet const & ) = delete; 7428 operator =(DescriptorSet && rhs)7429 DescriptorSet & operator=( DescriptorSet && rhs ) VULKAN_HPP_NOEXCEPT 7430 { 7431 if ( this != &rhs ) 7432 { 7433 std::swap( m_device, rhs.m_device ); 7434 std::swap( m_descriptorPool, rhs.m_descriptorPool ); 7435 std::swap( m_descriptorSet, rhs.m_descriptorSet ); 7436 std::swap( m_dispatcher, rhs.m_dispatcher ); 7437 } 7438 return *this; 7439 } 7440 operator *() const7441 VULKAN_HPP_NAMESPACE::DescriptorSet const & operator*() const VULKAN_HPP_NOEXCEPT 7442 { 7443 return m_descriptorSet; 7444 } 7445 operator VULKAN_HPP_NAMESPACE::DescriptorSet() const7446 operator VULKAN_HPP_NAMESPACE::DescriptorSet() const VULKAN_HPP_NOEXCEPT 7447 { 7448 return m_descriptorSet; 7449 } 7450 clear()7451 void clear() VULKAN_HPP_NOEXCEPT 7452 { 7453 if ( m_descriptorSet ) 7454 { 7455 getDispatcher()->vkFreeDescriptorSets( static_cast<VkDevice>( m_device ), 7456 static_cast<VkDescriptorPool>( m_descriptorPool ), 7457 1, 7458 reinterpret_cast<VkDescriptorSet const *>( &m_descriptorSet ) ); 7459 } 7460 m_device = nullptr; 7461 m_descriptorPool = nullptr; 7462 m_descriptorSet = nullptr; 7463 m_dispatcher = nullptr; 7464 } 7465 release()7466 VULKAN_HPP_NAMESPACE::DescriptorSet release() 7467 { 7468 m_device = nullptr; 7469 m_descriptorPool = nullptr; 7470 m_dispatcher = nullptr; 7471 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_descriptorSet, nullptr ); 7472 } 7473 getDevice() const7474 VULKAN_HPP_NAMESPACE::Device getDevice() const 7475 { 7476 return m_device; 7477 } 7478 getDispatcher() const7479 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7480 { 7481 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7482 return m_dispatcher; 7483 } 7484 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet & rhs)7485 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet & rhs ) VULKAN_HPP_NOEXCEPT 7486 { 7487 std::swap( m_device, rhs.m_device ); 7488 std::swap( m_descriptorPool, rhs.m_descriptorPool ); 7489 std::swap( m_descriptorSet, rhs.m_descriptorSet ); 7490 std::swap( m_dispatcher, rhs.m_dispatcher ); 7491 } 7492 7493 //=== VK_VERSION_1_1 === 7494 7495 template <typename DataType> 7496 void updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, DataType const & data ) const VULKAN_HPP_NOEXCEPT; 7497 7498 //=== VK_KHR_descriptor_update_template === 7499 7500 template <typename DataType> 7501 void updateWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, DataType const & data ) const VULKAN_HPP_NOEXCEPT; 7502 7503 //=== VK_VALVE_descriptor_set_host_mapping === 7504 7505 VULKAN_HPP_NODISCARD void * getHostMappingVALVE() const VULKAN_HPP_NOEXCEPT; 7506 7507 private: 7508 VULKAN_HPP_NAMESPACE::Device m_device = {}; 7509 VULKAN_HPP_NAMESPACE::DescriptorPool m_descriptorPool = {}; 7510 VULKAN_HPP_NAMESPACE::DescriptorSet m_descriptorSet = {}; 7511 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7512 }; 7513 7514 class DescriptorSets : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet> 7515 { 7516 public: 7517 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) DescriptorSets(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo)7518 DescriptorSets( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7519 VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) 7520 { 7521 *this = device.allocateDescriptorSets( allocateInfo ); 7522 } 7523 # endif 7524 DescriptorSets(std::nullptr_t)7525 DescriptorSets( std::nullptr_t ) {} 7526 7527 DescriptorSets() = delete; 7528 DescriptorSets( DescriptorSets const & ) = delete; 7529 DescriptorSets( DescriptorSets && rhs ) = default; 7530 DescriptorSets & operator=( DescriptorSets const & ) = delete; 7531 DescriptorSets & operator=( DescriptorSets && rhs ) = default; 7532 7533 private: DescriptorSets(std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet> && rhs)7534 DescriptorSets( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet> && rhs ) 7535 { 7536 std::swap( *this, rhs ); 7537 } 7538 }; 7539 7540 class DescriptorSetLayout 7541 { 7542 public: 7543 using CType = VkDescriptorSetLayout; 7544 using CppType = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; 7545 7546 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout; 7547 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7548 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout; 7549 7550 public: 7551 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)7552 DescriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7553 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & createInfo, 7554 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7555 { 7556 *this = device.createDescriptorSetLayout( createInfo, allocator ); 7557 } 7558 # endif 7559 DescriptorSetLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDescriptorSetLayout descriptorSetLayout,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7560 DescriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7561 VkDescriptorSetLayout descriptorSetLayout, 7562 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7563 : m_device( device ) 7564 , m_descriptorSetLayout( descriptorSetLayout ) 7565 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 7566 , m_dispatcher( device.getDispatcher() ) 7567 { 7568 } 7569 DescriptorSetLayout(std::nullptr_t)7570 DescriptorSetLayout( std::nullptr_t ) {} 7571 ~DescriptorSetLayout()7572 ~DescriptorSetLayout() 7573 { 7574 clear(); 7575 } 7576 7577 DescriptorSetLayout() = delete; 7578 DescriptorSetLayout( DescriptorSetLayout const & ) = delete; 7579 DescriptorSetLayout(DescriptorSetLayout && rhs)7580 DescriptorSetLayout( DescriptorSetLayout && rhs ) VULKAN_HPP_NOEXCEPT 7581 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 7582 , m_descriptorSetLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorSetLayout, {} ) ) 7583 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 7584 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 7585 { 7586 } 7587 7588 DescriptorSetLayout & operator=( DescriptorSetLayout const & ) = delete; 7589 operator =(DescriptorSetLayout && rhs)7590 DescriptorSetLayout & operator=( DescriptorSetLayout && rhs ) VULKAN_HPP_NOEXCEPT 7591 { 7592 if ( this != &rhs ) 7593 { 7594 std::swap( m_device, rhs.m_device ); 7595 std::swap( m_descriptorSetLayout, rhs.m_descriptorSetLayout ); 7596 std::swap( m_allocator, rhs.m_allocator ); 7597 std::swap( m_dispatcher, rhs.m_dispatcher ); 7598 } 7599 return *this; 7600 } 7601 operator *() const7602 VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & operator*() const VULKAN_HPP_NOEXCEPT 7603 { 7604 return m_descriptorSetLayout; 7605 } 7606 operator VULKAN_HPP_NAMESPACE::DescriptorSetLayout() const7607 operator VULKAN_HPP_NAMESPACE::DescriptorSetLayout() const VULKAN_HPP_NOEXCEPT 7608 { 7609 return m_descriptorSetLayout; 7610 } 7611 clear()7612 void clear() VULKAN_HPP_NOEXCEPT 7613 { 7614 if ( m_descriptorSetLayout ) 7615 { 7616 getDispatcher()->vkDestroyDescriptorSetLayout( static_cast<VkDevice>( m_device ), 7617 static_cast<VkDescriptorSetLayout>( m_descriptorSetLayout ), 7618 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 7619 } 7620 m_device = nullptr; 7621 m_descriptorSetLayout = nullptr; 7622 m_allocator = nullptr; 7623 m_dispatcher = nullptr; 7624 } 7625 release()7626 VULKAN_HPP_NAMESPACE::DescriptorSetLayout release() 7627 { 7628 m_device = nullptr; 7629 m_allocator = nullptr; 7630 m_dispatcher = nullptr; 7631 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_descriptorSetLayout, nullptr ); 7632 } 7633 getDevice() const7634 VULKAN_HPP_NAMESPACE::Device getDevice() const 7635 { 7636 return m_device; 7637 } 7638 getDispatcher() const7639 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7640 { 7641 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7642 return m_dispatcher; 7643 } 7644 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout & rhs)7645 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout & rhs ) VULKAN_HPP_NOEXCEPT 7646 { 7647 std::swap( m_device, rhs.m_device ); 7648 std::swap( m_descriptorSetLayout, rhs.m_descriptorSetLayout ); 7649 std::swap( m_allocator, rhs.m_allocator ); 7650 std::swap( m_dispatcher, rhs.m_dispatcher ); 7651 } 7652 7653 //=== VK_EXT_descriptor_buffer === 7654 7655 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getSizeEXT() const VULKAN_HPP_NOEXCEPT; 7656 7657 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getBindingOffsetEXT( uint32_t binding ) const VULKAN_HPP_NOEXCEPT; 7658 7659 private: 7660 VULKAN_HPP_NAMESPACE::Device m_device = {}; 7661 VULKAN_HPP_NAMESPACE::DescriptorSetLayout m_descriptorSetLayout = {}; 7662 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 7663 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7664 }; 7665 7666 class DescriptorUpdateTemplate 7667 { 7668 public: 7669 using CType = VkDescriptorUpdateTemplate; 7670 using CppType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; 7671 7672 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate; 7673 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7674 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate; 7675 7676 public: 7677 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)7678 DescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7679 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo, 7680 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7681 { 7682 *this = device.createDescriptorUpdateTemplate( createInfo, allocator ); 7683 } 7684 # endif 7685 DescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7686 DescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7687 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 7688 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7689 : m_device( device ) 7690 , m_descriptorUpdateTemplate( descriptorUpdateTemplate ) 7691 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 7692 , m_dispatcher( device.getDispatcher() ) 7693 { 7694 } 7695 DescriptorUpdateTemplate(std::nullptr_t)7696 DescriptorUpdateTemplate( std::nullptr_t ) {} 7697 ~DescriptorUpdateTemplate()7698 ~DescriptorUpdateTemplate() 7699 { 7700 clear(); 7701 } 7702 7703 DescriptorUpdateTemplate() = delete; 7704 DescriptorUpdateTemplate( DescriptorUpdateTemplate const & ) = delete; 7705 DescriptorUpdateTemplate(DescriptorUpdateTemplate && rhs)7706 DescriptorUpdateTemplate( DescriptorUpdateTemplate && rhs ) VULKAN_HPP_NOEXCEPT 7707 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 7708 , m_descriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_descriptorUpdateTemplate, {} ) ) 7709 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 7710 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 7711 { 7712 } 7713 7714 DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate const & ) = delete; 7715 operator =(DescriptorUpdateTemplate && rhs)7716 DescriptorUpdateTemplate & operator=( DescriptorUpdateTemplate && rhs ) VULKAN_HPP_NOEXCEPT 7717 { 7718 if ( this != &rhs ) 7719 { 7720 std::swap( m_device, rhs.m_device ); 7721 std::swap( m_descriptorUpdateTemplate, rhs.m_descriptorUpdateTemplate ); 7722 std::swap( m_allocator, rhs.m_allocator ); 7723 std::swap( m_dispatcher, rhs.m_dispatcher ); 7724 } 7725 return *this; 7726 } 7727 operator *() const7728 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & operator*() const VULKAN_HPP_NOEXCEPT 7729 { 7730 return m_descriptorUpdateTemplate; 7731 } 7732 operator VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate() const7733 operator VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT 7734 { 7735 return m_descriptorUpdateTemplate; 7736 } 7737 clear()7738 void clear() VULKAN_HPP_NOEXCEPT 7739 { 7740 if ( m_descriptorUpdateTemplate ) 7741 { 7742 getDispatcher()->vkDestroyDescriptorUpdateTemplate( static_cast<VkDevice>( m_device ), 7743 static_cast<VkDescriptorUpdateTemplate>( m_descriptorUpdateTemplate ), 7744 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 7745 } 7746 m_device = nullptr; 7747 m_descriptorUpdateTemplate = nullptr; 7748 m_allocator = nullptr; 7749 m_dispatcher = nullptr; 7750 } 7751 release()7752 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate release() 7753 { 7754 m_device = nullptr; 7755 m_allocator = nullptr; 7756 m_dispatcher = nullptr; 7757 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_descriptorUpdateTemplate, nullptr ); 7758 } 7759 getDevice() const7760 VULKAN_HPP_NAMESPACE::Device getDevice() const 7761 { 7762 return m_device; 7763 } 7764 getDispatcher() const7765 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7766 { 7767 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7768 return m_dispatcher; 7769 } 7770 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate & rhs)7771 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate & rhs ) VULKAN_HPP_NOEXCEPT 7772 { 7773 std::swap( m_device, rhs.m_device ); 7774 std::swap( m_descriptorUpdateTemplate, rhs.m_descriptorUpdateTemplate ); 7775 std::swap( m_allocator, rhs.m_allocator ); 7776 std::swap( m_dispatcher, rhs.m_dispatcher ); 7777 } 7778 7779 private: 7780 VULKAN_HPP_NAMESPACE::Device m_device = {}; 7781 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate m_descriptorUpdateTemplate = {}; 7782 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 7783 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7784 }; 7785 7786 class DeviceMemory 7787 { 7788 public: 7789 using CType = VkDeviceMemory; 7790 using CppType = VULKAN_HPP_NAMESPACE::DeviceMemory; 7791 7792 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory; 7793 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7794 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory; 7795 7796 public: 7797 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)7798 DeviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7799 VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & allocateInfo, 7800 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7801 { 7802 *this = device.allocateMemory( allocateInfo, allocator ); 7803 } 7804 # endif 7805 DeviceMemory(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkDeviceMemory memory,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)7806 DeviceMemory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 7807 VkDeviceMemory memory, 7808 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 7809 : m_device( device ) 7810 , m_memory( memory ) 7811 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 7812 , m_dispatcher( device.getDispatcher() ) 7813 { 7814 } 7815 DeviceMemory(std::nullptr_t)7816 DeviceMemory( std::nullptr_t ) {} 7817 ~DeviceMemory()7818 ~DeviceMemory() 7819 { 7820 clear(); 7821 } 7822 7823 DeviceMemory() = delete; 7824 DeviceMemory( DeviceMemory const & ) = delete; 7825 DeviceMemory(DeviceMemory && rhs)7826 DeviceMemory( DeviceMemory && rhs ) VULKAN_HPP_NOEXCEPT 7827 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 7828 , m_memory( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_memory, {} ) ) 7829 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 7830 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 7831 { 7832 } 7833 7834 DeviceMemory & operator=( DeviceMemory const & ) = delete; 7835 operator =(DeviceMemory && rhs)7836 DeviceMemory & operator=( DeviceMemory && rhs ) VULKAN_HPP_NOEXCEPT 7837 { 7838 if ( this != &rhs ) 7839 { 7840 std::swap( m_device, rhs.m_device ); 7841 std::swap( m_memory, rhs.m_memory ); 7842 std::swap( m_allocator, rhs.m_allocator ); 7843 std::swap( m_dispatcher, rhs.m_dispatcher ); 7844 } 7845 return *this; 7846 } 7847 operator *() const7848 VULKAN_HPP_NAMESPACE::DeviceMemory const & operator*() const VULKAN_HPP_NOEXCEPT 7849 { 7850 return m_memory; 7851 } 7852 operator VULKAN_HPP_NAMESPACE::DeviceMemory() const7853 operator VULKAN_HPP_NAMESPACE::DeviceMemory() const VULKAN_HPP_NOEXCEPT 7854 { 7855 return m_memory; 7856 } 7857 clear()7858 void clear() VULKAN_HPP_NOEXCEPT 7859 { 7860 if ( m_memory ) 7861 { 7862 getDispatcher()->vkFreeMemory( 7863 static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 7864 } 7865 m_device = nullptr; 7866 m_memory = nullptr; 7867 m_allocator = nullptr; 7868 m_dispatcher = nullptr; 7869 } 7870 release()7871 VULKAN_HPP_NAMESPACE::DeviceMemory release() 7872 { 7873 m_device = nullptr; 7874 m_allocator = nullptr; 7875 m_dispatcher = nullptr; 7876 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_memory, nullptr ); 7877 } 7878 getDevice() const7879 VULKAN_HPP_NAMESPACE::Device getDevice() const 7880 { 7881 return m_device; 7882 } 7883 getDispatcher() const7884 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 7885 { 7886 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 7887 return m_dispatcher; 7888 } 7889 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory & rhs)7890 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory & rhs ) VULKAN_HPP_NOEXCEPT 7891 { 7892 std::swap( m_device, rhs.m_device ); 7893 std::swap( m_memory, rhs.m_memory ); 7894 std::swap( m_allocator, rhs.m_allocator ); 7895 std::swap( m_dispatcher, rhs.m_dispatcher ); 7896 } 7897 7898 //=== VK_VERSION_1_0 === 7899 7900 VULKAN_HPP_NODISCARD void * mapMemory( VULKAN_HPP_NAMESPACE::DeviceSize offset, 7901 VULKAN_HPP_NAMESPACE::DeviceSize size, 7902 VULKAN_HPP_NAMESPACE::MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 7903 7904 void unmapMemory() const VULKAN_HPP_NOEXCEPT; 7905 7906 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getCommitment() const VULKAN_HPP_NOEXCEPT; 7907 7908 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 7909 //=== VK_NV_external_memory_win32 === 7910 7911 VULKAN_HPP_NODISCARD HANDLE getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const; 7912 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 7913 7914 //=== VK_EXT_pageable_device_local_memory === 7915 7916 void setPriorityEXT( float priority ) const VULKAN_HPP_NOEXCEPT; 7917 7918 private: 7919 VULKAN_HPP_NAMESPACE::Device m_device = {}; 7920 VULKAN_HPP_NAMESPACE::DeviceMemory m_memory = {}; 7921 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 7922 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 7923 }; 7924 7925 class DisplayKHR 7926 { 7927 public: 7928 using CType = VkDisplayKHR; 7929 using CppType = VULKAN_HPP_NAMESPACE::DisplayKHR; 7930 7931 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR; 7932 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 7933 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR; 7934 7935 public: 7936 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,int32_t drmFd,uint32_t connectorId)7937 DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, int32_t drmFd, uint32_t connectorId ) 7938 { 7939 *this = physicalDevice.getDrmDisplayEXT( drmFd, connectorId ); 7940 } 7941 # endif 7942 7943 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 7944 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,Display & dpy,RROutput rrOutput)7945 DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, Display & dpy, RROutput rrOutput ) 7946 { 7947 *this = physicalDevice.getRandROutputDisplayEXT( dpy, rrOutput ); 7948 } 7949 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 7950 # endif 7951 7952 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 7953 # if defined( VK_USE_PLATFORM_WIN32_KHR ) DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,uint32_t deviceRelativeId)7954 DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, uint32_t deviceRelativeId ) 7955 { 7956 *this = physicalDevice.getWinrtDisplayNV( deviceRelativeId ); 7957 } 7958 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 7959 # endif 7960 DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,VkDisplayKHR display)7961 DisplayKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, VkDisplayKHR display ) 7962 : m_physicalDevice( physicalDevice ), m_display( display ), m_dispatcher( physicalDevice.getDispatcher() ) 7963 { 7964 } 7965 DisplayKHR(std::nullptr_t)7966 DisplayKHR( std::nullptr_t ) {} 7967 ~DisplayKHR()7968 ~DisplayKHR() 7969 { 7970 clear(); 7971 } 7972 7973 DisplayKHR() = delete; 7974 DisplayKHR( DisplayKHR const & ) = delete; 7975 DisplayKHR(DisplayKHR && rhs)7976 DisplayKHR( DisplayKHR && rhs ) VULKAN_HPP_NOEXCEPT 7977 : m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) ) 7978 , m_display( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_display, {} ) ) 7979 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 7980 { 7981 } 7982 7983 DisplayKHR & operator=( DisplayKHR const & ) = delete; 7984 operator =(DisplayKHR && rhs)7985 DisplayKHR & operator=( DisplayKHR && rhs ) VULKAN_HPP_NOEXCEPT 7986 { 7987 if ( this != &rhs ) 7988 { 7989 std::swap( m_physicalDevice, rhs.m_physicalDevice ); 7990 std::swap( m_display, rhs.m_display ); 7991 std::swap( m_dispatcher, rhs.m_dispatcher ); 7992 } 7993 return *this; 7994 } 7995 operator *() const7996 VULKAN_HPP_NAMESPACE::DisplayKHR const & operator*() const VULKAN_HPP_NOEXCEPT 7997 { 7998 return m_display; 7999 } 8000 operator VULKAN_HPP_NAMESPACE::DisplayKHR() const8001 operator VULKAN_HPP_NAMESPACE::DisplayKHR() const VULKAN_HPP_NOEXCEPT 8002 { 8003 return m_display; 8004 } 8005 clear()8006 void clear() VULKAN_HPP_NOEXCEPT 8007 { 8008 if ( m_display ) 8009 { 8010 getDispatcher()->vkReleaseDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ) ); 8011 } 8012 m_physicalDevice = nullptr; 8013 m_display = nullptr; 8014 m_dispatcher = nullptr; 8015 } 8016 release()8017 VULKAN_HPP_NAMESPACE::DisplayKHR release() 8018 { 8019 m_physicalDevice = nullptr; 8020 m_dispatcher = nullptr; 8021 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_display, nullptr ); 8022 } 8023 getPhysicalDevice() const8024 VULKAN_HPP_NAMESPACE::PhysicalDevice getPhysicalDevice() const 8025 { 8026 return m_physicalDevice; 8027 } 8028 getDispatcher() const8029 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 8030 { 8031 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8032 return m_dispatcher; 8033 } 8034 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR & rhs)8035 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR & rhs ) VULKAN_HPP_NOEXCEPT 8036 { 8037 std::swap( m_physicalDevice, rhs.m_physicalDevice ); 8038 std::swap( m_display, rhs.m_display ); 8039 std::swap( m_dispatcher, rhs.m_dispatcher ); 8040 } 8041 8042 //=== VK_KHR_display === 8043 8044 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> getModeProperties() const; 8045 8046 VULKAN_HPP_NODISCARD 8047 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR>::Type 8048 createMode( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & createInfo, 8049 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT; 8050 8051 //=== VK_KHR_get_display_properties2 === 8052 8053 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> getModeProperties2() const; 8054 8055 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 8056 //=== VK_NV_acquire_winrt_display === 8057 8058 void acquireWinrtNV() const; 8059 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 8060 8061 private: 8062 VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice = {}; 8063 VULKAN_HPP_NAMESPACE::DisplayKHR m_display = {}; 8064 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 8065 }; 8066 8067 class DisplayKHRs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> 8068 { 8069 public: 8070 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) DisplayKHRs(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice,uint32_t planeIndex)8071 DisplayKHRs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const & physicalDevice, uint32_t planeIndex ) 8072 { 8073 *this = physicalDevice.getDisplayPlaneSupportedDisplaysKHR( planeIndex ); 8074 } 8075 # endif 8076 DisplayKHRs(std::nullptr_t)8077 DisplayKHRs( std::nullptr_t ) {} 8078 8079 DisplayKHRs() = delete; 8080 DisplayKHRs( DisplayKHRs const & ) = delete; 8081 DisplayKHRs( DisplayKHRs && rhs ) = default; 8082 DisplayKHRs & operator=( DisplayKHRs const & ) = delete; 8083 DisplayKHRs & operator=( DisplayKHRs && rhs ) = default; 8084 8085 private: DisplayKHRs(std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> && rhs)8086 DisplayKHRs( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> && rhs ) 8087 { 8088 std::swap( *this, rhs ); 8089 } 8090 }; 8091 8092 class DisplayModeKHR 8093 { 8094 public: 8095 using CType = VkDisplayModeKHR; 8096 using CppType = VULKAN_HPP_NAMESPACE::DisplayModeKHR; 8097 8098 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR; 8099 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8100 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR; 8101 8102 public: 8103 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) DisplayModeKHR(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)8104 DisplayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, 8105 VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & createInfo, 8106 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8107 { 8108 *this = display.createMode( createInfo, allocator ); 8109 } 8110 # endif 8111 DisplayModeKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display,VkDisplayModeKHR displayModeKHR)8112 DisplayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, VkDisplayModeKHR displayModeKHR ) 8113 : m_physicalDevice( display.getPhysicalDevice() ), m_displayModeKHR( displayModeKHR ), m_dispatcher( display.getDispatcher() ) 8114 { 8115 } 8116 DisplayModeKHR(std::nullptr_t)8117 DisplayModeKHR( std::nullptr_t ) {} 8118 ~DisplayModeKHR()8119 ~DisplayModeKHR() 8120 { 8121 clear(); 8122 } 8123 8124 DisplayModeKHR() = delete; 8125 DisplayModeKHR(DisplayModeKHR const & rhs)8126 DisplayModeKHR( DisplayModeKHR const & rhs ) : m_displayModeKHR( rhs.m_displayModeKHR ), m_dispatcher( rhs.m_dispatcher ) {} 8127 DisplayModeKHR(DisplayModeKHR && rhs)8128 DisplayModeKHR( DisplayModeKHR && rhs ) VULKAN_HPP_NOEXCEPT 8129 : m_physicalDevice( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_physicalDevice, {} ) ) 8130 , m_displayModeKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_displayModeKHR, {} ) ) 8131 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 8132 { 8133 } 8134 operator =(DisplayModeKHR const & rhs)8135 DisplayModeKHR & operator=( DisplayModeKHR const & rhs ) 8136 { 8137 m_displayModeKHR = rhs.m_displayModeKHR; 8138 m_dispatcher = rhs.m_dispatcher; 8139 return *this; 8140 } 8141 operator =(DisplayModeKHR && rhs)8142 DisplayModeKHR & operator=( DisplayModeKHR && rhs ) VULKAN_HPP_NOEXCEPT 8143 { 8144 if ( this != &rhs ) 8145 { 8146 std::swap( m_physicalDevice, rhs.m_physicalDevice ); 8147 std::swap( m_displayModeKHR, rhs.m_displayModeKHR ); 8148 std::swap( m_dispatcher, rhs.m_dispatcher ); 8149 } 8150 return *this; 8151 } 8152 operator *() const8153 VULKAN_HPP_NAMESPACE::DisplayModeKHR const & operator*() const VULKAN_HPP_NOEXCEPT 8154 { 8155 return m_displayModeKHR; 8156 } 8157 operator VULKAN_HPP_NAMESPACE::DisplayModeKHR() const8158 operator VULKAN_HPP_NAMESPACE::DisplayModeKHR() const VULKAN_HPP_NOEXCEPT 8159 { 8160 return m_displayModeKHR; 8161 } 8162 clear()8163 void clear() VULKAN_HPP_NOEXCEPT 8164 { 8165 m_physicalDevice = nullptr; 8166 m_displayModeKHR = nullptr; 8167 m_dispatcher = nullptr; 8168 } 8169 release()8170 VULKAN_HPP_NAMESPACE::DisplayModeKHR release() 8171 { 8172 m_physicalDevice = nullptr; 8173 m_dispatcher = nullptr; 8174 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_displayModeKHR, nullptr ); 8175 } 8176 getDispatcher() const8177 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 8178 { 8179 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8180 return m_dispatcher; 8181 } 8182 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR & rhs)8183 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR & rhs ) VULKAN_HPP_NOEXCEPT 8184 { 8185 std::swap( m_physicalDevice, rhs.m_physicalDevice ); 8186 std::swap( m_displayModeKHR, rhs.m_displayModeKHR ); 8187 std::swap( m_dispatcher, rhs.m_dispatcher ); 8188 } 8189 8190 //=== VK_KHR_display === 8191 8192 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR getDisplayPlaneCapabilities( uint32_t planeIndex ) const; 8193 8194 private: 8195 VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice = {}; 8196 VULKAN_HPP_NAMESPACE::DisplayModeKHR m_displayModeKHR = {}; 8197 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 8198 }; 8199 8200 class Event 8201 { 8202 public: 8203 using CType = VkEvent; 8204 using CppType = VULKAN_HPP_NAMESPACE::Event; 8205 8206 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent; 8207 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8208 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent; 8209 8210 public: 8211 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)8212 Event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8213 VULKAN_HPP_NAMESPACE::EventCreateInfo const & createInfo, 8214 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8215 { 8216 *this = device.createEvent( createInfo, allocator ); 8217 } 8218 # endif 8219 Event(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkEvent event,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8220 Event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8221 VkEvent event, 8222 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8223 : m_device( device ) 8224 , m_event( event ) 8225 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 8226 , m_dispatcher( device.getDispatcher() ) 8227 { 8228 } 8229 Event(std::nullptr_t)8230 Event( std::nullptr_t ) {} 8231 ~Event()8232 ~Event() 8233 { 8234 clear(); 8235 } 8236 8237 Event() = delete; 8238 Event( Event const & ) = delete; 8239 Event(Event && rhs)8240 Event( Event && rhs ) VULKAN_HPP_NOEXCEPT 8241 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 8242 , m_event( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_event, {} ) ) 8243 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 8244 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 8245 { 8246 } 8247 8248 Event & operator=( Event const & ) = delete; 8249 operator =(Event && rhs)8250 Event & operator=( Event && rhs ) VULKAN_HPP_NOEXCEPT 8251 { 8252 if ( this != &rhs ) 8253 { 8254 std::swap( m_device, rhs.m_device ); 8255 std::swap( m_event, rhs.m_event ); 8256 std::swap( m_allocator, rhs.m_allocator ); 8257 std::swap( m_dispatcher, rhs.m_dispatcher ); 8258 } 8259 return *this; 8260 } 8261 operator *() const8262 VULKAN_HPP_NAMESPACE::Event const & operator*() const VULKAN_HPP_NOEXCEPT 8263 { 8264 return m_event; 8265 } 8266 operator VULKAN_HPP_NAMESPACE::Event() const8267 operator VULKAN_HPP_NAMESPACE::Event() const VULKAN_HPP_NOEXCEPT 8268 { 8269 return m_event; 8270 } 8271 clear()8272 void clear() VULKAN_HPP_NOEXCEPT 8273 { 8274 if ( m_event ) 8275 { 8276 getDispatcher()->vkDestroyEvent( 8277 static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 8278 } 8279 m_device = nullptr; 8280 m_event = nullptr; 8281 m_allocator = nullptr; 8282 m_dispatcher = nullptr; 8283 } 8284 release()8285 VULKAN_HPP_NAMESPACE::Event release() 8286 { 8287 m_device = nullptr; 8288 m_allocator = nullptr; 8289 m_dispatcher = nullptr; 8290 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_event, nullptr ); 8291 } 8292 getDevice() const8293 VULKAN_HPP_NAMESPACE::Device getDevice() const 8294 { 8295 return m_device; 8296 } 8297 getDispatcher() const8298 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8299 { 8300 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8301 return m_dispatcher; 8302 } 8303 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event & rhs)8304 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event & rhs ) VULKAN_HPP_NOEXCEPT 8305 { 8306 std::swap( m_device, rhs.m_device ); 8307 std::swap( m_event, rhs.m_event ); 8308 std::swap( m_allocator, rhs.m_allocator ); 8309 std::swap( m_dispatcher, rhs.m_dispatcher ); 8310 } 8311 8312 //=== VK_VERSION_1_0 === 8313 8314 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; 8315 8316 void set() const; 8317 8318 void reset() const; 8319 8320 private: 8321 VULKAN_HPP_NAMESPACE::Device m_device = {}; 8322 VULKAN_HPP_NAMESPACE::Event m_event = {}; 8323 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 8324 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8325 }; 8326 8327 class Fence 8328 { 8329 public: 8330 using CType = VkFence; 8331 using CppType = VULKAN_HPP_NAMESPACE::Fence; 8332 8333 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence; 8334 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8335 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence; 8336 8337 public: 8338 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)8339 Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8340 VULKAN_HPP_NAMESPACE::FenceCreateInfo const & createInfo, 8341 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8342 { 8343 *this = device.createFence( createInfo, allocator ); 8344 } 8345 # endif 8346 8347 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)8348 Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8349 VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfo, 8350 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8351 { 8352 *this = device.registerEventEXT( deviceEventInfo, allocator ); 8353 } 8354 # endif 8355 8356 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)8357 Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8358 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, 8359 VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & displayEventInfo, 8360 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8361 { 8362 *this = device.registerDisplayEventEXT( display, displayEventInfo, allocator ); 8363 } 8364 # endif 8365 Fence(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkFence fence,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8366 Fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8367 VkFence fence, 8368 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8369 : m_device( device ) 8370 , m_fence( fence ) 8371 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 8372 , m_dispatcher( device.getDispatcher() ) 8373 { 8374 } 8375 Fence(std::nullptr_t)8376 Fence( std::nullptr_t ) {} 8377 ~Fence()8378 ~Fence() 8379 { 8380 clear(); 8381 } 8382 8383 Fence() = delete; 8384 Fence( Fence const & ) = delete; 8385 Fence(Fence && rhs)8386 Fence( Fence && rhs ) VULKAN_HPP_NOEXCEPT 8387 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 8388 , m_fence( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_fence, {} ) ) 8389 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 8390 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 8391 { 8392 } 8393 8394 Fence & operator=( Fence const & ) = delete; 8395 operator =(Fence && rhs)8396 Fence & operator=( Fence && rhs ) VULKAN_HPP_NOEXCEPT 8397 { 8398 if ( this != &rhs ) 8399 { 8400 std::swap( m_device, rhs.m_device ); 8401 std::swap( m_fence, rhs.m_fence ); 8402 std::swap( m_allocator, rhs.m_allocator ); 8403 std::swap( m_dispatcher, rhs.m_dispatcher ); 8404 } 8405 return *this; 8406 } 8407 operator *() const8408 VULKAN_HPP_NAMESPACE::Fence const & operator*() const VULKAN_HPP_NOEXCEPT 8409 { 8410 return m_fence; 8411 } 8412 operator VULKAN_HPP_NAMESPACE::Fence() const8413 operator VULKAN_HPP_NAMESPACE::Fence() const VULKAN_HPP_NOEXCEPT 8414 { 8415 return m_fence; 8416 } 8417 clear()8418 void clear() VULKAN_HPP_NOEXCEPT 8419 { 8420 if ( m_fence ) 8421 { 8422 getDispatcher()->vkDestroyFence( 8423 static_cast<VkDevice>( m_device ), static_cast<VkFence>( m_fence ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 8424 } 8425 m_device = nullptr; 8426 m_fence = nullptr; 8427 m_allocator = nullptr; 8428 m_dispatcher = nullptr; 8429 } 8430 release()8431 VULKAN_HPP_NAMESPACE::Fence release() 8432 { 8433 m_device = nullptr; 8434 m_allocator = nullptr; 8435 m_dispatcher = nullptr; 8436 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_fence, nullptr ); 8437 } 8438 getDevice() const8439 VULKAN_HPP_NAMESPACE::Device getDevice() const 8440 { 8441 return m_device; 8442 } 8443 getDispatcher() const8444 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8445 { 8446 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8447 return m_dispatcher; 8448 } 8449 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence & rhs)8450 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence & rhs ) VULKAN_HPP_NOEXCEPT 8451 { 8452 std::swap( m_device, rhs.m_device ); 8453 std::swap( m_fence, rhs.m_fence ); 8454 std::swap( m_allocator, rhs.m_allocator ); 8455 std::swap( m_dispatcher, rhs.m_dispatcher ); 8456 } 8457 8458 //=== VK_VERSION_1_0 === 8459 8460 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; 8461 8462 private: 8463 VULKAN_HPP_NAMESPACE::Device m_device = {}; 8464 VULKAN_HPP_NAMESPACE::Fence m_fence = {}; 8465 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 8466 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8467 }; 8468 8469 class Framebuffer 8470 { 8471 public: 8472 using CType = VkFramebuffer; 8473 using CppType = VULKAN_HPP_NAMESPACE::Framebuffer; 8474 8475 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer; 8476 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8477 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer; 8478 8479 public: 8480 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)8481 Framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8482 VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & createInfo, 8483 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8484 { 8485 *this = device.createFramebuffer( createInfo, allocator ); 8486 } 8487 # endif 8488 Framebuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkFramebuffer framebuffer,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8489 Framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8490 VkFramebuffer framebuffer, 8491 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8492 : m_device( device ) 8493 , m_framebuffer( framebuffer ) 8494 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 8495 , m_dispatcher( device.getDispatcher() ) 8496 { 8497 } 8498 Framebuffer(std::nullptr_t)8499 Framebuffer( std::nullptr_t ) {} 8500 ~Framebuffer()8501 ~Framebuffer() 8502 { 8503 clear(); 8504 } 8505 8506 Framebuffer() = delete; 8507 Framebuffer( Framebuffer const & ) = delete; 8508 Framebuffer(Framebuffer && rhs)8509 Framebuffer( Framebuffer && rhs ) VULKAN_HPP_NOEXCEPT 8510 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 8511 , m_framebuffer( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_framebuffer, {} ) ) 8512 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 8513 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 8514 { 8515 } 8516 8517 Framebuffer & operator=( Framebuffer const & ) = delete; 8518 operator =(Framebuffer && rhs)8519 Framebuffer & operator=( Framebuffer && rhs ) VULKAN_HPP_NOEXCEPT 8520 { 8521 if ( this != &rhs ) 8522 { 8523 std::swap( m_device, rhs.m_device ); 8524 std::swap( m_framebuffer, rhs.m_framebuffer ); 8525 std::swap( m_allocator, rhs.m_allocator ); 8526 std::swap( m_dispatcher, rhs.m_dispatcher ); 8527 } 8528 return *this; 8529 } 8530 operator *() const8531 VULKAN_HPP_NAMESPACE::Framebuffer const & operator*() const VULKAN_HPP_NOEXCEPT 8532 { 8533 return m_framebuffer; 8534 } 8535 operator VULKAN_HPP_NAMESPACE::Framebuffer() const8536 operator VULKAN_HPP_NAMESPACE::Framebuffer() const VULKAN_HPP_NOEXCEPT 8537 { 8538 return m_framebuffer; 8539 } 8540 clear()8541 void clear() VULKAN_HPP_NOEXCEPT 8542 { 8543 if ( m_framebuffer ) 8544 { 8545 getDispatcher()->vkDestroyFramebuffer( 8546 static_cast<VkDevice>( m_device ), static_cast<VkFramebuffer>( m_framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 8547 } 8548 m_device = nullptr; 8549 m_framebuffer = nullptr; 8550 m_allocator = nullptr; 8551 m_dispatcher = nullptr; 8552 } 8553 release()8554 VULKAN_HPP_NAMESPACE::Framebuffer release() 8555 { 8556 m_device = nullptr; 8557 m_allocator = nullptr; 8558 m_dispatcher = nullptr; 8559 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_framebuffer, nullptr ); 8560 } 8561 getDevice() const8562 VULKAN_HPP_NAMESPACE::Device getDevice() const 8563 { 8564 return m_device; 8565 } 8566 getDispatcher() const8567 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8568 { 8569 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8570 return m_dispatcher; 8571 } 8572 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer & rhs)8573 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer & rhs ) VULKAN_HPP_NOEXCEPT 8574 { 8575 std::swap( m_device, rhs.m_device ); 8576 std::swap( m_framebuffer, rhs.m_framebuffer ); 8577 std::swap( m_allocator, rhs.m_allocator ); 8578 std::swap( m_dispatcher, rhs.m_dispatcher ); 8579 } 8580 8581 //=== VK_QCOM_tile_properties === 8582 8583 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM> getTilePropertiesQCOM() const; 8584 8585 private: 8586 VULKAN_HPP_NAMESPACE::Device m_device = {}; 8587 VULKAN_HPP_NAMESPACE::Framebuffer m_framebuffer = {}; 8588 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 8589 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8590 }; 8591 8592 class Image 8593 { 8594 public: 8595 using CType = VkImage; 8596 using CppType = VULKAN_HPP_NAMESPACE::Image; 8597 8598 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage; 8599 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8600 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage; 8601 8602 public: 8603 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)8604 Image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8605 VULKAN_HPP_NAMESPACE::ImageCreateInfo const & createInfo, 8606 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8607 { 8608 *this = device.createImage( createInfo, allocator ); 8609 } 8610 # endif 8611 Image(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkImage image,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8612 Image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8613 VkImage image, 8614 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8615 : m_device( device ) 8616 , m_image( image ) 8617 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 8618 , m_dispatcher( device.getDispatcher() ) 8619 { 8620 } 8621 Image(std::nullptr_t)8622 Image( std::nullptr_t ) {} 8623 ~Image()8624 ~Image() 8625 { 8626 clear(); 8627 } 8628 8629 Image() = delete; 8630 Image( Image const & ) = delete; 8631 Image(Image && rhs)8632 Image( Image && rhs ) VULKAN_HPP_NOEXCEPT 8633 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 8634 , m_image( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_image, {} ) ) 8635 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 8636 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 8637 { 8638 } 8639 8640 Image & operator=( Image const & ) = delete; 8641 operator =(Image && rhs)8642 Image & operator=( Image && rhs ) VULKAN_HPP_NOEXCEPT 8643 { 8644 if ( this != &rhs ) 8645 { 8646 std::swap( m_device, rhs.m_device ); 8647 std::swap( m_image, rhs.m_image ); 8648 std::swap( m_allocator, rhs.m_allocator ); 8649 std::swap( m_dispatcher, rhs.m_dispatcher ); 8650 } 8651 return *this; 8652 } 8653 operator *() const8654 VULKAN_HPP_NAMESPACE::Image const & operator*() const VULKAN_HPP_NOEXCEPT 8655 { 8656 return m_image; 8657 } 8658 operator VULKAN_HPP_NAMESPACE::Image() const8659 operator VULKAN_HPP_NAMESPACE::Image() const VULKAN_HPP_NOEXCEPT 8660 { 8661 return m_image; 8662 } 8663 clear()8664 void clear() VULKAN_HPP_NOEXCEPT 8665 { 8666 if ( m_image ) 8667 { 8668 getDispatcher()->vkDestroyImage( 8669 static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 8670 } 8671 m_device = nullptr; 8672 m_image = nullptr; 8673 m_allocator = nullptr; 8674 m_dispatcher = nullptr; 8675 } 8676 release()8677 VULKAN_HPP_NAMESPACE::Image release() 8678 { 8679 m_device = nullptr; 8680 m_allocator = nullptr; 8681 m_dispatcher = nullptr; 8682 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_image, nullptr ); 8683 } 8684 getDevice() const8685 VULKAN_HPP_NAMESPACE::Device getDevice() const 8686 { 8687 return m_device; 8688 } 8689 getDispatcher() const8690 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8691 { 8692 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8693 return m_dispatcher; 8694 } 8695 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image & rhs)8696 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image & rhs ) VULKAN_HPP_NOEXCEPT 8697 { 8698 std::swap( m_device, rhs.m_device ); 8699 std::swap( m_image, rhs.m_image ); 8700 std::swap( m_allocator, rhs.m_allocator ); 8701 std::swap( m_dispatcher, rhs.m_dispatcher ); 8702 } 8703 8704 //=== VK_VERSION_1_0 === 8705 8706 void bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const; 8707 8708 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT; 8709 8710 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> getSparseMemoryRequirements() const; 8711 8712 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout 8713 getSubresourceLayout( const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource ) const VULKAN_HPP_NOEXCEPT; 8714 8715 //=== VK_EXT_image_drm_format_modifier === 8716 8717 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT getDrmFormatModifierPropertiesEXT() const; 8718 8719 //=== VK_EXT_host_image_copy === 8720 8721 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR 8722 getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT; 8723 8724 template <typename X, typename Y, typename... Z> 8725 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 8726 getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT; 8727 8728 //=== VK_KHR_maintenance5 === 8729 8730 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR 8731 getSubresourceLayout2KHR( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT; 8732 8733 template <typename X, typename Y, typename... Z> 8734 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> 8735 getSubresourceLayout2KHR( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT; 8736 8737 private: 8738 VULKAN_HPP_NAMESPACE::Device m_device = {}; 8739 VULKAN_HPP_NAMESPACE::Image m_image = {}; 8740 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 8741 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8742 }; 8743 8744 class ImageView 8745 { 8746 public: 8747 using CType = VkImageView; 8748 using CppType = VULKAN_HPP_NAMESPACE::ImageView; 8749 8750 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView; 8751 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8752 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView; 8753 8754 public: 8755 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)8756 ImageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8757 VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & createInfo, 8758 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8759 { 8760 *this = device.createImageView( createInfo, allocator ); 8761 } 8762 # endif 8763 ImageView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkImageView imageView,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8764 ImageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8765 VkImageView imageView, 8766 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8767 : m_device( device ) 8768 , m_imageView( imageView ) 8769 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 8770 , m_dispatcher( device.getDispatcher() ) 8771 { 8772 } 8773 ImageView(std::nullptr_t)8774 ImageView( std::nullptr_t ) {} 8775 ~ImageView()8776 ~ImageView() 8777 { 8778 clear(); 8779 } 8780 8781 ImageView() = delete; 8782 ImageView( ImageView const & ) = delete; 8783 ImageView(ImageView && rhs)8784 ImageView( ImageView && rhs ) VULKAN_HPP_NOEXCEPT 8785 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 8786 , m_imageView( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_imageView, {} ) ) 8787 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 8788 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 8789 { 8790 } 8791 8792 ImageView & operator=( ImageView const & ) = delete; 8793 operator =(ImageView && rhs)8794 ImageView & operator=( ImageView && rhs ) VULKAN_HPP_NOEXCEPT 8795 { 8796 if ( this != &rhs ) 8797 { 8798 std::swap( m_device, rhs.m_device ); 8799 std::swap( m_imageView, rhs.m_imageView ); 8800 std::swap( m_allocator, rhs.m_allocator ); 8801 std::swap( m_dispatcher, rhs.m_dispatcher ); 8802 } 8803 return *this; 8804 } 8805 operator *() const8806 VULKAN_HPP_NAMESPACE::ImageView const & operator*() const VULKAN_HPP_NOEXCEPT 8807 { 8808 return m_imageView; 8809 } 8810 operator VULKAN_HPP_NAMESPACE::ImageView() const8811 operator VULKAN_HPP_NAMESPACE::ImageView() const VULKAN_HPP_NOEXCEPT 8812 { 8813 return m_imageView; 8814 } 8815 clear()8816 void clear() VULKAN_HPP_NOEXCEPT 8817 { 8818 if ( m_imageView ) 8819 { 8820 getDispatcher()->vkDestroyImageView( 8821 static_cast<VkDevice>( m_device ), static_cast<VkImageView>( m_imageView ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 8822 } 8823 m_device = nullptr; 8824 m_imageView = nullptr; 8825 m_allocator = nullptr; 8826 m_dispatcher = nullptr; 8827 } 8828 release()8829 VULKAN_HPP_NAMESPACE::ImageView release() 8830 { 8831 m_device = nullptr; 8832 m_allocator = nullptr; 8833 m_dispatcher = nullptr; 8834 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_imageView, nullptr ); 8835 } 8836 getDevice() const8837 VULKAN_HPP_NAMESPACE::Device getDevice() const 8838 { 8839 return m_device; 8840 } 8841 getDispatcher() const8842 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8843 { 8844 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8845 return m_dispatcher; 8846 } 8847 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView & rhs)8848 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView & rhs ) VULKAN_HPP_NOEXCEPT 8849 { 8850 std::swap( m_device, rhs.m_device ); 8851 std::swap( m_imageView, rhs.m_imageView ); 8852 std::swap( m_allocator, rhs.m_allocator ); 8853 std::swap( m_dispatcher, rhs.m_dispatcher ); 8854 } 8855 8856 //=== VK_NVX_image_view_handle === 8857 8858 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX getAddressNVX() const; 8859 8860 private: 8861 VULKAN_HPP_NAMESPACE::Device m_device = {}; 8862 VULKAN_HPP_NAMESPACE::ImageView m_imageView = {}; 8863 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 8864 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8865 }; 8866 8867 class IndirectCommandsLayoutNV 8868 { 8869 public: 8870 using CType = VkIndirectCommandsLayoutNV; 8871 using CppType = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV; 8872 8873 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV; 8874 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8875 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 8876 8877 public: 8878 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)8879 IndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8880 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & createInfo, 8881 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8882 { 8883 *this = device.createIndirectCommandsLayoutNV( createInfo, allocator ); 8884 } 8885 # endif 8886 IndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkIndirectCommandsLayoutNV indirectCommandsLayout,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8887 IndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 8888 VkIndirectCommandsLayoutNV indirectCommandsLayout, 8889 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 8890 : m_device( device ) 8891 , m_indirectCommandsLayout( indirectCommandsLayout ) 8892 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 8893 , m_dispatcher( device.getDispatcher() ) 8894 { 8895 } 8896 IndirectCommandsLayoutNV(std::nullptr_t)8897 IndirectCommandsLayoutNV( std::nullptr_t ) {} 8898 ~IndirectCommandsLayoutNV()8899 ~IndirectCommandsLayoutNV() 8900 { 8901 clear(); 8902 } 8903 8904 IndirectCommandsLayoutNV() = delete; 8905 IndirectCommandsLayoutNV( IndirectCommandsLayoutNV const & ) = delete; 8906 IndirectCommandsLayoutNV(IndirectCommandsLayoutNV && rhs)8907 IndirectCommandsLayoutNV( IndirectCommandsLayoutNV && rhs ) VULKAN_HPP_NOEXCEPT 8908 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 8909 , m_indirectCommandsLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_indirectCommandsLayout, {} ) ) 8910 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 8911 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 8912 { 8913 } 8914 8915 IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV const & ) = delete; 8916 operator =(IndirectCommandsLayoutNV && rhs)8917 IndirectCommandsLayoutNV & operator=( IndirectCommandsLayoutNV && rhs ) VULKAN_HPP_NOEXCEPT 8918 { 8919 if ( this != &rhs ) 8920 { 8921 std::swap( m_device, rhs.m_device ); 8922 std::swap( m_indirectCommandsLayout, rhs.m_indirectCommandsLayout ); 8923 std::swap( m_allocator, rhs.m_allocator ); 8924 std::swap( m_dispatcher, rhs.m_dispatcher ); 8925 } 8926 return *this; 8927 } 8928 operator *() const8929 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & operator*() const VULKAN_HPP_NOEXCEPT 8930 { 8931 return m_indirectCommandsLayout; 8932 } 8933 operator VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV() const8934 operator VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT 8935 { 8936 return m_indirectCommandsLayout; 8937 } 8938 clear()8939 void clear() VULKAN_HPP_NOEXCEPT 8940 { 8941 if ( m_indirectCommandsLayout ) 8942 { 8943 getDispatcher()->vkDestroyIndirectCommandsLayoutNV( static_cast<VkDevice>( m_device ), 8944 static_cast<VkIndirectCommandsLayoutNV>( m_indirectCommandsLayout ), 8945 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 8946 } 8947 m_device = nullptr; 8948 m_indirectCommandsLayout = nullptr; 8949 m_allocator = nullptr; 8950 m_dispatcher = nullptr; 8951 } 8952 release()8953 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV release() 8954 { 8955 m_device = nullptr; 8956 m_allocator = nullptr; 8957 m_dispatcher = nullptr; 8958 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_indirectCommandsLayout, nullptr ); 8959 } 8960 getDevice() const8961 VULKAN_HPP_NAMESPACE::Device getDevice() const 8962 { 8963 return m_device; 8964 } 8965 getDispatcher() const8966 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 8967 { 8968 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 8969 return m_dispatcher; 8970 } 8971 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV & rhs)8972 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV & rhs ) VULKAN_HPP_NOEXCEPT 8973 { 8974 std::swap( m_device, rhs.m_device ); 8975 std::swap( m_indirectCommandsLayout, rhs.m_indirectCommandsLayout ); 8976 std::swap( m_allocator, rhs.m_allocator ); 8977 std::swap( m_dispatcher, rhs.m_dispatcher ); 8978 } 8979 8980 private: 8981 VULKAN_HPP_NAMESPACE::Device m_device = {}; 8982 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV m_indirectCommandsLayout = {}; 8983 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 8984 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 8985 }; 8986 8987 class MicromapEXT 8988 { 8989 public: 8990 using CType = VkMicromapEXT; 8991 using CppType = VULKAN_HPP_NAMESPACE::MicromapEXT; 8992 8993 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eMicromapEXT; 8994 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 8995 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 8996 8997 public: 8998 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) MicromapEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)8999 MicromapEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9000 VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const & createInfo, 9001 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9002 { 9003 *this = device.createMicromapEXT( createInfo, allocator ); 9004 } 9005 # endif 9006 MicromapEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkMicromapEXT micromap,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9007 MicromapEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9008 VkMicromapEXT micromap, 9009 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9010 : m_device( device ) 9011 , m_micromap( micromap ) 9012 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 9013 , m_dispatcher( device.getDispatcher() ) 9014 { 9015 } 9016 MicromapEXT(std::nullptr_t)9017 MicromapEXT( std::nullptr_t ) {} 9018 ~MicromapEXT()9019 ~MicromapEXT() 9020 { 9021 clear(); 9022 } 9023 9024 MicromapEXT() = delete; 9025 MicromapEXT( MicromapEXT const & ) = delete; 9026 MicromapEXT(MicromapEXT && rhs)9027 MicromapEXT( MicromapEXT && rhs ) VULKAN_HPP_NOEXCEPT 9028 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 9029 , m_micromap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_micromap, {} ) ) 9030 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 9031 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 9032 { 9033 } 9034 9035 MicromapEXT & operator=( MicromapEXT const & ) = delete; 9036 operator =(MicromapEXT && rhs)9037 MicromapEXT & operator=( MicromapEXT && rhs ) VULKAN_HPP_NOEXCEPT 9038 { 9039 if ( this != &rhs ) 9040 { 9041 std::swap( m_device, rhs.m_device ); 9042 std::swap( m_micromap, rhs.m_micromap ); 9043 std::swap( m_allocator, rhs.m_allocator ); 9044 std::swap( m_dispatcher, rhs.m_dispatcher ); 9045 } 9046 return *this; 9047 } 9048 operator *() const9049 VULKAN_HPP_NAMESPACE::MicromapEXT const & operator*() const VULKAN_HPP_NOEXCEPT 9050 { 9051 return m_micromap; 9052 } 9053 operator VULKAN_HPP_NAMESPACE::MicromapEXT() const9054 operator VULKAN_HPP_NAMESPACE::MicromapEXT() const VULKAN_HPP_NOEXCEPT 9055 { 9056 return m_micromap; 9057 } 9058 clear()9059 void clear() VULKAN_HPP_NOEXCEPT 9060 { 9061 if ( m_micromap ) 9062 { 9063 getDispatcher()->vkDestroyMicromapEXT( 9064 static_cast<VkDevice>( m_device ), static_cast<VkMicromapEXT>( m_micromap ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 9065 } 9066 m_device = nullptr; 9067 m_micromap = nullptr; 9068 m_allocator = nullptr; 9069 m_dispatcher = nullptr; 9070 } 9071 release()9072 VULKAN_HPP_NAMESPACE::MicromapEXT release() 9073 { 9074 m_device = nullptr; 9075 m_allocator = nullptr; 9076 m_dispatcher = nullptr; 9077 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_micromap, nullptr ); 9078 } 9079 getDevice() const9080 VULKAN_HPP_NAMESPACE::Device getDevice() const 9081 { 9082 return m_device; 9083 } 9084 getDispatcher() const9085 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9086 { 9087 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9088 return m_dispatcher; 9089 } 9090 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::MicromapEXT & rhs)9091 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::MicromapEXT & rhs ) VULKAN_HPP_NOEXCEPT 9092 { 9093 std::swap( m_device, rhs.m_device ); 9094 std::swap( m_micromap, rhs.m_micromap ); 9095 std::swap( m_allocator, rhs.m_allocator ); 9096 std::swap( m_dispatcher, rhs.m_dispatcher ); 9097 } 9098 9099 private: 9100 VULKAN_HPP_NAMESPACE::Device m_device = {}; 9101 VULKAN_HPP_NAMESPACE::MicromapEXT m_micromap = {}; 9102 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 9103 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9104 }; 9105 9106 class OpticalFlowSessionNV 9107 { 9108 public: 9109 using CType = VkOpticalFlowSessionNV; 9110 using CppType = VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV; 9111 9112 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eOpticalFlowSessionNV; 9113 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 9114 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 9115 9116 public: 9117 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) OpticalFlowSessionNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9118 OpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9119 VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const & createInfo, 9120 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9121 { 9122 *this = device.createOpticalFlowSessionNV( createInfo, allocator ); 9123 } 9124 # endif 9125 OpticalFlowSessionNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkOpticalFlowSessionNV session,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9126 OpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9127 VkOpticalFlowSessionNV session, 9128 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9129 : m_device( device ) 9130 , m_session( session ) 9131 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 9132 , m_dispatcher( device.getDispatcher() ) 9133 { 9134 } 9135 OpticalFlowSessionNV(std::nullptr_t)9136 OpticalFlowSessionNV( std::nullptr_t ) {} 9137 ~OpticalFlowSessionNV()9138 ~OpticalFlowSessionNV() 9139 { 9140 clear(); 9141 } 9142 9143 OpticalFlowSessionNV() = delete; 9144 OpticalFlowSessionNV( OpticalFlowSessionNV const & ) = delete; 9145 OpticalFlowSessionNV(OpticalFlowSessionNV && rhs)9146 OpticalFlowSessionNV( OpticalFlowSessionNV && rhs ) VULKAN_HPP_NOEXCEPT 9147 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 9148 , m_session( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_session, {} ) ) 9149 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 9150 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 9151 { 9152 } 9153 9154 OpticalFlowSessionNV & operator=( OpticalFlowSessionNV const & ) = delete; 9155 operator =(OpticalFlowSessionNV && rhs)9156 OpticalFlowSessionNV & operator=( OpticalFlowSessionNV && rhs ) VULKAN_HPP_NOEXCEPT 9157 { 9158 if ( this != &rhs ) 9159 { 9160 std::swap( m_device, rhs.m_device ); 9161 std::swap( m_session, rhs.m_session ); 9162 std::swap( m_allocator, rhs.m_allocator ); 9163 std::swap( m_dispatcher, rhs.m_dispatcher ); 9164 } 9165 return *this; 9166 } 9167 operator *() const9168 VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV const & operator*() const VULKAN_HPP_NOEXCEPT 9169 { 9170 return m_session; 9171 } 9172 operator VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV() const9173 operator VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV() const VULKAN_HPP_NOEXCEPT 9174 { 9175 return m_session; 9176 } 9177 clear()9178 void clear() VULKAN_HPP_NOEXCEPT 9179 { 9180 if ( m_session ) 9181 { 9182 getDispatcher()->vkDestroyOpticalFlowSessionNV( static_cast<VkDevice>( m_device ), 9183 static_cast<VkOpticalFlowSessionNV>( m_session ), 9184 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 9185 } 9186 m_device = nullptr; 9187 m_session = nullptr; 9188 m_allocator = nullptr; 9189 m_dispatcher = nullptr; 9190 } 9191 release()9192 VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV release() 9193 { 9194 m_device = nullptr; 9195 m_allocator = nullptr; 9196 m_dispatcher = nullptr; 9197 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_session, nullptr ); 9198 } 9199 getDevice() const9200 VULKAN_HPP_NAMESPACE::Device getDevice() const 9201 { 9202 return m_device; 9203 } 9204 getDispatcher() const9205 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9206 { 9207 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9208 return m_dispatcher; 9209 } 9210 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV & rhs)9211 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV & rhs ) VULKAN_HPP_NOEXCEPT 9212 { 9213 std::swap( m_device, rhs.m_device ); 9214 std::swap( m_session, rhs.m_session ); 9215 std::swap( m_allocator, rhs.m_allocator ); 9216 std::swap( m_dispatcher, rhs.m_dispatcher ); 9217 } 9218 9219 //=== VK_NV_optical_flow === 9220 9221 void bindImage( VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV bindingPoint, 9222 VULKAN_HPP_NAMESPACE::ImageView view, 9223 VULKAN_HPP_NAMESPACE::ImageLayout layout ) const; 9224 9225 private: 9226 VULKAN_HPP_NAMESPACE::Device m_device = {}; 9227 VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV m_session = {}; 9228 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 9229 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9230 }; 9231 9232 class PerformanceConfigurationINTEL 9233 { 9234 public: 9235 using CType = VkPerformanceConfigurationINTEL; 9236 using CppType = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL; 9237 9238 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL; 9239 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 9240 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 9241 9242 public: 9243 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) PerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo)9244 PerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9245 VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) 9246 { 9247 *this = device.acquirePerformanceConfigurationINTEL( acquireInfo ); 9248 } 9249 # endif 9250 PerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPerformanceConfigurationINTEL configuration)9251 PerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkPerformanceConfigurationINTEL configuration ) 9252 : m_device( device ), m_configuration( configuration ), m_dispatcher( device.getDispatcher() ) 9253 { 9254 } 9255 PerformanceConfigurationINTEL(std::nullptr_t)9256 PerformanceConfigurationINTEL( std::nullptr_t ) {} 9257 ~PerformanceConfigurationINTEL()9258 ~PerformanceConfigurationINTEL() 9259 { 9260 clear(); 9261 } 9262 9263 PerformanceConfigurationINTEL() = delete; 9264 PerformanceConfigurationINTEL( PerformanceConfigurationINTEL const & ) = delete; 9265 PerformanceConfigurationINTEL(PerformanceConfigurationINTEL && rhs)9266 PerformanceConfigurationINTEL( PerformanceConfigurationINTEL && rhs ) VULKAN_HPP_NOEXCEPT 9267 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 9268 , m_configuration( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_configuration, {} ) ) 9269 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 9270 { 9271 } 9272 9273 PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL const & ) = delete; 9274 operator =(PerformanceConfigurationINTEL && rhs)9275 PerformanceConfigurationINTEL & operator=( PerformanceConfigurationINTEL && rhs ) VULKAN_HPP_NOEXCEPT 9276 { 9277 if ( this != &rhs ) 9278 { 9279 std::swap( m_device, rhs.m_device ); 9280 std::swap( m_configuration, rhs.m_configuration ); 9281 std::swap( m_dispatcher, rhs.m_dispatcher ); 9282 } 9283 return *this; 9284 } 9285 operator *() const9286 VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & operator*() const VULKAN_HPP_NOEXCEPT 9287 { 9288 return m_configuration; 9289 } 9290 operator VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL() const9291 operator VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT 9292 { 9293 return m_configuration; 9294 } 9295 clear()9296 void clear() VULKAN_HPP_NOEXCEPT 9297 { 9298 if ( m_configuration ) 9299 { 9300 getDispatcher()->vkReleasePerformanceConfigurationINTEL( static_cast<VkDevice>( m_device ), 9301 static_cast<VkPerformanceConfigurationINTEL>( m_configuration ) ); 9302 } 9303 m_device = nullptr; 9304 m_configuration = nullptr; 9305 m_dispatcher = nullptr; 9306 } 9307 release()9308 VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL release() 9309 { 9310 m_device = nullptr; 9311 m_dispatcher = nullptr; 9312 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_configuration, nullptr ); 9313 } 9314 getDevice() const9315 VULKAN_HPP_NAMESPACE::Device getDevice() const 9316 { 9317 return m_device; 9318 } 9319 getDispatcher() const9320 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9321 { 9322 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9323 return m_dispatcher; 9324 } 9325 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL & rhs)9326 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL & rhs ) VULKAN_HPP_NOEXCEPT 9327 { 9328 std::swap( m_device, rhs.m_device ); 9329 std::swap( m_configuration, rhs.m_configuration ); 9330 std::swap( m_dispatcher, rhs.m_dispatcher ); 9331 } 9332 9333 private: 9334 VULKAN_HPP_NAMESPACE::Device m_device = {}; 9335 VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL m_configuration = {}; 9336 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9337 }; 9338 9339 class PipelineCache 9340 { 9341 public: 9342 using CType = VkPipelineCache; 9343 using CppType = VULKAN_HPP_NAMESPACE::PipelineCache; 9344 9345 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache; 9346 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 9347 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache; 9348 9349 public: 9350 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9351 PipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9352 VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & createInfo, 9353 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9354 { 9355 *this = device.createPipelineCache( createInfo, allocator ); 9356 } 9357 # endif 9358 PipelineCache(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9359 PipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9360 VkPipelineCache pipelineCache, 9361 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9362 : m_device( device ) 9363 , m_pipelineCache( pipelineCache ) 9364 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 9365 , m_dispatcher( device.getDispatcher() ) 9366 { 9367 } 9368 PipelineCache(std::nullptr_t)9369 PipelineCache( std::nullptr_t ) {} 9370 ~PipelineCache()9371 ~PipelineCache() 9372 { 9373 clear(); 9374 } 9375 9376 PipelineCache() = delete; 9377 PipelineCache( PipelineCache const & ) = delete; 9378 PipelineCache(PipelineCache && rhs)9379 PipelineCache( PipelineCache && rhs ) VULKAN_HPP_NOEXCEPT 9380 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 9381 , m_pipelineCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineCache, {} ) ) 9382 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 9383 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 9384 { 9385 } 9386 9387 PipelineCache & operator=( PipelineCache const & ) = delete; 9388 operator =(PipelineCache && rhs)9389 PipelineCache & operator=( PipelineCache && rhs ) VULKAN_HPP_NOEXCEPT 9390 { 9391 if ( this != &rhs ) 9392 { 9393 std::swap( m_device, rhs.m_device ); 9394 std::swap( m_pipelineCache, rhs.m_pipelineCache ); 9395 std::swap( m_allocator, rhs.m_allocator ); 9396 std::swap( m_dispatcher, rhs.m_dispatcher ); 9397 } 9398 return *this; 9399 } 9400 operator *() const9401 VULKAN_HPP_NAMESPACE::PipelineCache const & operator*() const VULKAN_HPP_NOEXCEPT 9402 { 9403 return m_pipelineCache; 9404 } 9405 operator VULKAN_HPP_NAMESPACE::PipelineCache() const9406 operator VULKAN_HPP_NAMESPACE::PipelineCache() const VULKAN_HPP_NOEXCEPT 9407 { 9408 return m_pipelineCache; 9409 } 9410 clear()9411 void clear() VULKAN_HPP_NOEXCEPT 9412 { 9413 if ( m_pipelineCache ) 9414 { 9415 getDispatcher()->vkDestroyPipelineCache( static_cast<VkDevice>( m_device ), 9416 static_cast<VkPipelineCache>( m_pipelineCache ), 9417 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 9418 } 9419 m_device = nullptr; 9420 m_pipelineCache = nullptr; 9421 m_allocator = nullptr; 9422 m_dispatcher = nullptr; 9423 } 9424 release()9425 VULKAN_HPP_NAMESPACE::PipelineCache release() 9426 { 9427 m_device = nullptr; 9428 m_allocator = nullptr; 9429 m_dispatcher = nullptr; 9430 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_pipelineCache, nullptr ); 9431 } 9432 getDevice() const9433 VULKAN_HPP_NAMESPACE::Device getDevice() const 9434 { 9435 return m_device; 9436 } 9437 getDispatcher() const9438 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9439 { 9440 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9441 return m_dispatcher; 9442 } 9443 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache & rhs)9444 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache & rhs ) VULKAN_HPP_NOEXCEPT 9445 { 9446 std::swap( m_device, rhs.m_device ); 9447 std::swap( m_pipelineCache, rhs.m_pipelineCache ); 9448 std::swap( m_allocator, rhs.m_allocator ); 9449 std::swap( m_dispatcher, rhs.m_dispatcher ); 9450 } 9451 9452 //=== VK_VERSION_1_0 === 9453 9454 VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const; 9455 9456 void merge( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches ) const; 9457 9458 private: 9459 VULKAN_HPP_NAMESPACE::Device m_device = {}; 9460 VULKAN_HPP_NAMESPACE::PipelineCache m_pipelineCache = {}; 9461 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 9462 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9463 }; 9464 9465 class Pipeline 9466 { 9467 public: 9468 using CType = VkPipeline; 9469 using CppType = VULKAN_HPP_NAMESPACE::Pipeline; 9470 9471 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline; 9472 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 9473 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline; 9474 9475 public: 9476 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9477 Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9478 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9479 VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & createInfo, 9480 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9481 { 9482 *this = device.createComputePipeline( pipelineCache, createInfo, allocator ); 9483 } 9484 # endif 9485 9486 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 9487 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 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::ExecutionGraphPipelineCreateInfoAMDX const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9488 Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9489 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9490 VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const & createInfo, 9491 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9492 { 9493 *this = device.createExecutionGraphPipelineAMDX( pipelineCache, createInfo, allocator ); 9494 } 9495 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 9496 # endif 9497 9498 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9499 Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9500 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9501 VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & createInfo, 9502 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9503 { 9504 *this = device.createGraphicsPipeline( pipelineCache, createInfo, allocator ); 9505 } 9506 # endif 9507 9508 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9509 Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9510 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, 9511 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9512 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const & createInfo, 9513 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9514 { 9515 *this = device.createRayTracingPipelineKHR( deferredOperation, pipelineCache, createInfo, allocator ); 9516 } 9517 # endif 9518 9519 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9520 Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9521 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9522 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & createInfo, 9523 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9524 { 9525 *this = device.createRayTracingPipelineNV( pipelineCache, createInfo, allocator ); 9526 } 9527 # endif 9528 Pipeline(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPipeline pipeline,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr,VULKAN_HPP_NAMESPACE::Result successCode=VULKAN_HPP_NAMESPACE::Result::eSuccess)9529 Pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9530 VkPipeline pipeline, 9531 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr, 9532 VULKAN_HPP_NAMESPACE::Result successCode = VULKAN_HPP_NAMESPACE::Result::eSuccess ) 9533 : m_device( device ) 9534 , m_pipeline( pipeline ) 9535 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 9536 , m_constructorSuccessCode( successCode ) 9537 , m_dispatcher( device.getDispatcher() ) 9538 { 9539 } 9540 Pipeline(std::nullptr_t)9541 Pipeline( std::nullptr_t ) {} 9542 ~Pipeline()9543 ~Pipeline() 9544 { 9545 clear(); 9546 } 9547 9548 Pipeline() = delete; 9549 Pipeline( Pipeline const & ) = delete; 9550 Pipeline(Pipeline && rhs)9551 Pipeline( Pipeline && rhs ) VULKAN_HPP_NOEXCEPT 9552 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 9553 , m_pipeline( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipeline, {} ) ) 9554 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 9555 , m_constructorSuccessCode( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_constructorSuccessCode, {} ) ) 9556 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 9557 { 9558 } 9559 9560 Pipeline & operator=( Pipeline const & ) = delete; 9561 operator =(Pipeline && rhs)9562 Pipeline & operator=( Pipeline && rhs ) VULKAN_HPP_NOEXCEPT 9563 { 9564 if ( this != &rhs ) 9565 { 9566 std::swap( m_device, rhs.m_device ); 9567 std::swap( m_pipeline, rhs.m_pipeline ); 9568 std::swap( m_allocator, rhs.m_allocator ); 9569 std::swap( m_constructorSuccessCode, rhs.m_constructorSuccessCode ); 9570 std::swap( m_dispatcher, rhs.m_dispatcher ); 9571 } 9572 return *this; 9573 } 9574 operator *() const9575 VULKAN_HPP_NAMESPACE::Pipeline const & operator*() const VULKAN_HPP_NOEXCEPT 9576 { 9577 return m_pipeline; 9578 } 9579 operator VULKAN_HPP_NAMESPACE::Pipeline() const9580 operator VULKAN_HPP_NAMESPACE::Pipeline() const VULKAN_HPP_NOEXCEPT 9581 { 9582 return m_pipeline; 9583 } 9584 clear()9585 void clear() VULKAN_HPP_NOEXCEPT 9586 { 9587 if ( m_pipeline ) 9588 { 9589 getDispatcher()->vkDestroyPipeline( 9590 static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 9591 } 9592 m_device = nullptr; 9593 m_pipeline = nullptr; 9594 m_allocator = nullptr; 9595 m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::Result::eErrorUnknown; 9596 m_dispatcher = nullptr; 9597 } 9598 release()9599 VULKAN_HPP_NAMESPACE::Pipeline release() 9600 { 9601 m_device = nullptr; 9602 m_allocator = nullptr; 9603 m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::Result::eErrorUnknown; 9604 m_dispatcher = nullptr; 9605 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_pipeline, nullptr ); 9606 } 9607 getConstructorSuccessCode() const9608 VULKAN_HPP_NAMESPACE::Result getConstructorSuccessCode() const 9609 { 9610 return m_constructorSuccessCode; 9611 } 9612 getDevice() const9613 VULKAN_HPP_NAMESPACE::Device getDevice() const 9614 { 9615 return m_device; 9616 } 9617 getDispatcher() const9618 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9619 { 9620 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9621 return m_dispatcher; 9622 } 9623 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline & rhs)9624 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline & rhs ) VULKAN_HPP_NOEXCEPT 9625 { 9626 std::swap( m_device, rhs.m_device ); 9627 std::swap( m_pipeline, rhs.m_pipeline ); 9628 std::swap( m_allocator, rhs.m_allocator ); 9629 std::swap( m_constructorSuccessCode, rhs.m_constructorSuccessCode ); 9630 std::swap( m_dispatcher, rhs.m_dispatcher ); 9631 } 9632 9633 //=== VK_AMD_shader_info === 9634 9635 VULKAN_HPP_NODISCARD std::vector<uint8_t> getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, 9636 VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType ) const; 9637 9638 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 9639 //=== VK_AMDX_shader_enqueue === 9640 9641 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX getExecutionGraphScratchSizeAMDX() const; 9642 9643 VULKAN_HPP_NODISCARD uint32_t getExecutionGraphNodeIndexAMDX( const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo ) const; 9644 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 9645 9646 //=== VK_KHR_ray_tracing_pipeline === 9647 9648 template <typename DataType> 9649 VULKAN_HPP_NODISCARD std::vector<DataType> getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; 9650 9651 template <typename DataType> 9652 VULKAN_HPP_NODISCARD DataType getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const; 9653 9654 template <typename DataType> 9655 VULKAN_HPP_NODISCARD std::vector<DataType> 9656 getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; 9657 9658 template <typename DataType> 9659 VULKAN_HPP_NODISCARD DataType getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const; 9660 9661 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize 9662 getRayTracingShaderGroupStackSizeKHR( uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT; 9663 9664 //=== VK_NV_ray_tracing === 9665 9666 template <typename DataType> 9667 VULKAN_HPP_NODISCARD std::vector<DataType> getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const; 9668 9669 template <typename DataType> 9670 VULKAN_HPP_NODISCARD DataType getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const; 9671 9672 void compileDeferredNV( uint32_t shader ) const; 9673 9674 private: 9675 VULKAN_HPP_NAMESPACE::Device m_device = {}; 9676 VULKAN_HPP_NAMESPACE::Pipeline m_pipeline = {}; 9677 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 9678 VULKAN_HPP_NAMESPACE::Result m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::Result::eErrorUnknown; 9679 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9680 }; 9681 9682 class Pipelines : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> 9683 { 9684 public: 9685 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9686 Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9687 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9688 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, 9689 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9690 { 9691 *this = device.createComputePipelines( pipelineCache, createInfos, allocator ); 9692 } 9693 # endif 9694 9695 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 9696 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 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::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9697 Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9698 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9699 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos, 9700 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9701 { 9702 *this = device.createExecutionGraphPipelinesAMDX( pipelineCache, createInfos, allocator ); 9703 } 9704 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 9705 # endif 9706 9707 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9708 Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9709 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9710 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, 9711 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9712 { 9713 *this = device.createGraphicsPipelines( pipelineCache, createInfos, allocator ); 9714 } 9715 # endif 9716 9717 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9718 Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9719 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, 9720 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9721 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, 9722 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9723 { 9724 *this = device.createRayTracingPipelinesKHR( deferredOperation, pipelineCache, createInfos, allocator ); 9725 } 9726 # endif 9727 9728 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9729 Pipelines( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9730 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 9731 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, 9732 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9733 { 9734 *this = device.createRayTracingPipelinesNV( pipelineCache, createInfos, allocator ); 9735 } 9736 # endif 9737 Pipelines(std::nullptr_t)9738 Pipelines( std::nullptr_t ) {} 9739 9740 Pipelines() = delete; 9741 Pipelines( Pipelines const & ) = delete; 9742 Pipelines( Pipelines && rhs ) = default; 9743 Pipelines & operator=( Pipelines const & ) = delete; 9744 Pipelines & operator=( Pipelines && rhs ) = default; 9745 9746 private: Pipelines(std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> && rhs)9747 Pipelines( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> && rhs ) 9748 { 9749 std::swap( *this, rhs ); 9750 } 9751 }; 9752 9753 class PipelineLayout 9754 { 9755 public: 9756 using CType = VkPipelineLayout; 9757 using CppType = VULKAN_HPP_NAMESPACE::PipelineLayout; 9758 9759 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout; 9760 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 9761 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout; 9762 9763 public: 9764 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)9765 PipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9766 VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & createInfo, 9767 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9768 { 9769 *this = device.createPipelineLayout( createInfo, allocator ); 9770 } 9771 # endif 9772 PipelineLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPipelineLayout pipelineLayout,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9773 PipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9774 VkPipelineLayout pipelineLayout, 9775 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9776 : m_device( device ) 9777 , m_pipelineLayout( pipelineLayout ) 9778 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 9779 , m_dispatcher( device.getDispatcher() ) 9780 { 9781 } 9782 PipelineLayout(std::nullptr_t)9783 PipelineLayout( std::nullptr_t ) {} 9784 ~PipelineLayout()9785 ~PipelineLayout() 9786 { 9787 clear(); 9788 } 9789 9790 PipelineLayout() = delete; 9791 PipelineLayout( PipelineLayout const & ) = delete; 9792 PipelineLayout(PipelineLayout && rhs)9793 PipelineLayout( PipelineLayout && rhs ) VULKAN_HPP_NOEXCEPT 9794 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 9795 , m_pipelineLayout( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_pipelineLayout, {} ) ) 9796 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 9797 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 9798 { 9799 } 9800 9801 PipelineLayout & operator=( PipelineLayout const & ) = delete; 9802 operator =(PipelineLayout && rhs)9803 PipelineLayout & operator=( PipelineLayout && rhs ) VULKAN_HPP_NOEXCEPT 9804 { 9805 if ( this != &rhs ) 9806 { 9807 std::swap( m_device, rhs.m_device ); 9808 std::swap( m_pipelineLayout, rhs.m_pipelineLayout ); 9809 std::swap( m_allocator, rhs.m_allocator ); 9810 std::swap( m_dispatcher, rhs.m_dispatcher ); 9811 } 9812 return *this; 9813 } 9814 operator *() const9815 VULKAN_HPP_NAMESPACE::PipelineLayout const & operator*() const VULKAN_HPP_NOEXCEPT 9816 { 9817 return m_pipelineLayout; 9818 } 9819 operator VULKAN_HPP_NAMESPACE::PipelineLayout() const9820 operator VULKAN_HPP_NAMESPACE::PipelineLayout() const VULKAN_HPP_NOEXCEPT 9821 { 9822 return m_pipelineLayout; 9823 } 9824 clear()9825 void clear() VULKAN_HPP_NOEXCEPT 9826 { 9827 if ( m_pipelineLayout ) 9828 { 9829 getDispatcher()->vkDestroyPipelineLayout( static_cast<VkDevice>( m_device ), 9830 static_cast<VkPipelineLayout>( m_pipelineLayout ), 9831 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 9832 } 9833 m_device = nullptr; 9834 m_pipelineLayout = nullptr; 9835 m_allocator = nullptr; 9836 m_dispatcher = nullptr; 9837 } 9838 release()9839 VULKAN_HPP_NAMESPACE::PipelineLayout release() 9840 { 9841 m_device = nullptr; 9842 m_allocator = nullptr; 9843 m_dispatcher = nullptr; 9844 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_pipelineLayout, nullptr ); 9845 } 9846 getDevice() const9847 VULKAN_HPP_NAMESPACE::Device getDevice() const 9848 { 9849 return m_device; 9850 } 9851 getDispatcher() const9852 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9853 { 9854 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9855 return m_dispatcher; 9856 } 9857 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout & rhs)9858 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout & rhs ) VULKAN_HPP_NOEXCEPT 9859 { 9860 std::swap( m_device, rhs.m_device ); 9861 std::swap( m_pipelineLayout, rhs.m_pipelineLayout ); 9862 std::swap( m_allocator, rhs.m_allocator ); 9863 std::swap( m_dispatcher, rhs.m_dispatcher ); 9864 } 9865 9866 private: 9867 VULKAN_HPP_NAMESPACE::Device m_device = {}; 9868 VULKAN_HPP_NAMESPACE::PipelineLayout m_pipelineLayout = {}; 9869 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 9870 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9871 }; 9872 9873 class PrivateDataSlot 9874 { 9875 public: 9876 using CType = VkPrivateDataSlot; 9877 using CppType = VULKAN_HPP_NAMESPACE::PrivateDataSlot; 9878 9879 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlot; 9880 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 9881 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 9882 9883 public: 9884 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) PrivateDataSlot(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9885 PrivateDataSlot( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9886 VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & createInfo, 9887 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9888 { 9889 *this = device.createPrivateDataSlot( createInfo, allocator ); 9890 } 9891 # endif 9892 PrivateDataSlot(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkPrivateDataSlot privateDataSlot,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)9893 PrivateDataSlot( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 9894 VkPrivateDataSlot privateDataSlot, 9895 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 9896 : m_device( device ) 9897 , m_privateDataSlot( privateDataSlot ) 9898 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 9899 , m_dispatcher( device.getDispatcher() ) 9900 { 9901 } 9902 PrivateDataSlot(std::nullptr_t)9903 PrivateDataSlot( std::nullptr_t ) {} 9904 ~PrivateDataSlot()9905 ~PrivateDataSlot() 9906 { 9907 clear(); 9908 } 9909 9910 PrivateDataSlot() = delete; 9911 PrivateDataSlot( PrivateDataSlot const & ) = delete; 9912 PrivateDataSlot(PrivateDataSlot && rhs)9913 PrivateDataSlot( PrivateDataSlot && rhs ) VULKAN_HPP_NOEXCEPT 9914 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 9915 , m_privateDataSlot( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_privateDataSlot, {} ) ) 9916 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 9917 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 9918 { 9919 } 9920 9921 PrivateDataSlot & operator=( PrivateDataSlot const & ) = delete; 9922 operator =(PrivateDataSlot && rhs)9923 PrivateDataSlot & operator=( PrivateDataSlot && rhs ) VULKAN_HPP_NOEXCEPT 9924 { 9925 if ( this != &rhs ) 9926 { 9927 std::swap( m_device, rhs.m_device ); 9928 std::swap( m_privateDataSlot, rhs.m_privateDataSlot ); 9929 std::swap( m_allocator, rhs.m_allocator ); 9930 std::swap( m_dispatcher, rhs.m_dispatcher ); 9931 } 9932 return *this; 9933 } 9934 operator *() const9935 VULKAN_HPP_NAMESPACE::PrivateDataSlot const & operator*() const VULKAN_HPP_NOEXCEPT 9936 { 9937 return m_privateDataSlot; 9938 } 9939 operator VULKAN_HPP_NAMESPACE::PrivateDataSlot() const9940 operator VULKAN_HPP_NAMESPACE::PrivateDataSlot() const VULKAN_HPP_NOEXCEPT 9941 { 9942 return m_privateDataSlot; 9943 } 9944 clear()9945 void clear() VULKAN_HPP_NOEXCEPT 9946 { 9947 if ( m_privateDataSlot ) 9948 { 9949 getDispatcher()->vkDestroyPrivateDataSlot( static_cast<VkDevice>( m_device ), 9950 static_cast<VkPrivateDataSlot>( m_privateDataSlot ), 9951 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 9952 } 9953 m_device = nullptr; 9954 m_privateDataSlot = nullptr; 9955 m_allocator = nullptr; 9956 m_dispatcher = nullptr; 9957 } 9958 release()9959 VULKAN_HPP_NAMESPACE::PrivateDataSlot release() 9960 { 9961 m_device = nullptr; 9962 m_allocator = nullptr; 9963 m_dispatcher = nullptr; 9964 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_privateDataSlot, nullptr ); 9965 } 9966 getDevice() const9967 VULKAN_HPP_NAMESPACE::Device getDevice() const 9968 { 9969 return m_device; 9970 } 9971 getDispatcher() const9972 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 9973 { 9974 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 9975 return m_dispatcher; 9976 } 9977 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot & rhs)9978 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot & rhs ) VULKAN_HPP_NOEXCEPT 9979 { 9980 std::swap( m_device, rhs.m_device ); 9981 std::swap( m_privateDataSlot, rhs.m_privateDataSlot ); 9982 std::swap( m_allocator, rhs.m_allocator ); 9983 std::swap( m_dispatcher, rhs.m_dispatcher ); 9984 } 9985 9986 private: 9987 VULKAN_HPP_NAMESPACE::Device m_device = {}; 9988 VULKAN_HPP_NAMESPACE::PrivateDataSlot m_privateDataSlot = {}; 9989 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 9990 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 9991 }; 9992 9993 class QueryPool 9994 { 9995 public: 9996 using CType = VkQueryPool; 9997 using CppType = VULKAN_HPP_NAMESPACE::QueryPool; 9998 9999 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool; 10000 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 10001 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool; 10002 10003 public: 10004 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)10005 QueryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10006 VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & createInfo, 10007 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10008 { 10009 *this = device.createQueryPool( createInfo, allocator ); 10010 } 10011 # endif 10012 QueryPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkQueryPool queryPool,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)10013 QueryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10014 VkQueryPool queryPool, 10015 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10016 : m_device( device ) 10017 , m_queryPool( queryPool ) 10018 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 10019 , m_dispatcher( device.getDispatcher() ) 10020 { 10021 } 10022 QueryPool(std::nullptr_t)10023 QueryPool( std::nullptr_t ) {} 10024 ~QueryPool()10025 ~QueryPool() 10026 { 10027 clear(); 10028 } 10029 10030 QueryPool() = delete; 10031 QueryPool( QueryPool const & ) = delete; 10032 QueryPool(QueryPool && rhs)10033 QueryPool( QueryPool && rhs ) VULKAN_HPP_NOEXCEPT 10034 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 10035 , m_queryPool( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queryPool, {} ) ) 10036 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 10037 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 10038 { 10039 } 10040 10041 QueryPool & operator=( QueryPool const & ) = delete; 10042 operator =(QueryPool && rhs)10043 QueryPool & operator=( QueryPool && rhs ) VULKAN_HPP_NOEXCEPT 10044 { 10045 if ( this != &rhs ) 10046 { 10047 std::swap( m_device, rhs.m_device ); 10048 std::swap( m_queryPool, rhs.m_queryPool ); 10049 std::swap( m_allocator, rhs.m_allocator ); 10050 std::swap( m_dispatcher, rhs.m_dispatcher ); 10051 } 10052 return *this; 10053 } 10054 operator *() const10055 VULKAN_HPP_NAMESPACE::QueryPool const & operator*() const VULKAN_HPP_NOEXCEPT 10056 { 10057 return m_queryPool; 10058 } 10059 operator VULKAN_HPP_NAMESPACE::QueryPool() const10060 operator VULKAN_HPP_NAMESPACE::QueryPool() const VULKAN_HPP_NOEXCEPT 10061 { 10062 return m_queryPool; 10063 } 10064 clear()10065 void clear() VULKAN_HPP_NOEXCEPT 10066 { 10067 if ( m_queryPool ) 10068 { 10069 getDispatcher()->vkDestroyQueryPool( 10070 static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( m_queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 10071 } 10072 m_device = nullptr; 10073 m_queryPool = nullptr; 10074 m_allocator = nullptr; 10075 m_dispatcher = nullptr; 10076 } 10077 release()10078 VULKAN_HPP_NAMESPACE::QueryPool release() 10079 { 10080 m_device = nullptr; 10081 m_allocator = nullptr; 10082 m_dispatcher = nullptr; 10083 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_queryPool, nullptr ); 10084 } 10085 getDevice() const10086 VULKAN_HPP_NAMESPACE::Device getDevice() const 10087 { 10088 return m_device; 10089 } 10090 getDispatcher() const10091 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 10092 { 10093 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 10094 return m_dispatcher; 10095 } 10096 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool & rhs)10097 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool & rhs ) VULKAN_HPP_NOEXCEPT 10098 { 10099 std::swap( m_device, rhs.m_device ); 10100 std::swap( m_queryPool, rhs.m_queryPool ); 10101 std::swap( m_allocator, rhs.m_allocator ); 10102 std::swap( m_dispatcher, rhs.m_dispatcher ); 10103 } 10104 10105 //=== VK_VERSION_1_0 === 10106 10107 template <typename DataType> 10108 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, std::vector<DataType>> 10109 getResults( uint32_t firstQuery, 10110 uint32_t queryCount, 10111 size_t dataSize, 10112 VULKAN_HPP_NAMESPACE::DeviceSize stride, 10113 VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 10114 10115 template <typename DataType> 10116 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, DataType> 10117 getResult( uint32_t firstQuery, 10118 uint32_t queryCount, 10119 VULKAN_HPP_NAMESPACE::DeviceSize stride, 10120 VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 10121 10122 //=== VK_VERSION_1_2 === 10123 10124 void reset( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT; 10125 10126 //=== VK_EXT_host_query_reset === 10127 10128 void resetEXT( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT; 10129 10130 private: 10131 VULKAN_HPP_NAMESPACE::Device m_device = {}; 10132 VULKAN_HPP_NAMESPACE::QueryPool m_queryPool = {}; 10133 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 10134 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 10135 }; 10136 10137 class Queue 10138 { 10139 public: 10140 using CType = VkQueue; 10141 using CppType = VULKAN_HPP_NAMESPACE::Queue; 10142 10143 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue; 10144 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 10145 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue; 10146 10147 public: 10148 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,uint32_t queueFamilyIndex,uint32_t queueIndex)10149 Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, uint32_t queueFamilyIndex, uint32_t queueIndex ) 10150 { 10151 *this = device.getQueue( queueFamilyIndex, queueIndex ); 10152 } 10153 # endif 10154 10155 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo)10156 Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) 10157 { 10158 *this = device.getQueue2( queueInfo ); 10159 } 10160 # endif 10161 Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkQueue queue)10162 Queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, VkQueue queue ) : m_queue( queue ), m_dispatcher( device.getDispatcher() ) 10163 { 10164 } 10165 Queue(std::nullptr_t)10166 Queue( std::nullptr_t ) {} 10167 ~Queue()10168 ~Queue() 10169 { 10170 clear(); 10171 } 10172 10173 Queue() = delete; 10174 Queue(Queue const & rhs)10175 Queue( Queue const & rhs ) : m_queue( rhs.m_queue ), m_dispatcher( rhs.m_dispatcher ) {} 10176 Queue(Queue && rhs)10177 Queue( Queue && rhs ) VULKAN_HPP_NOEXCEPT 10178 : m_queue( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_queue, {} ) ) 10179 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 10180 { 10181 } 10182 operator =(Queue const & rhs)10183 Queue & operator=( Queue const & rhs ) 10184 { 10185 m_queue = rhs.m_queue; 10186 m_dispatcher = rhs.m_dispatcher; 10187 return *this; 10188 } 10189 operator =(Queue && rhs)10190 Queue & operator=( Queue && rhs ) VULKAN_HPP_NOEXCEPT 10191 { 10192 if ( this != &rhs ) 10193 { 10194 std::swap( m_queue, rhs.m_queue ); 10195 std::swap( m_dispatcher, rhs.m_dispatcher ); 10196 } 10197 return *this; 10198 } 10199 operator *() const10200 VULKAN_HPP_NAMESPACE::Queue const & operator*() const VULKAN_HPP_NOEXCEPT 10201 { 10202 return m_queue; 10203 } 10204 operator VULKAN_HPP_NAMESPACE::Queue() const10205 operator VULKAN_HPP_NAMESPACE::Queue() const VULKAN_HPP_NOEXCEPT 10206 { 10207 return m_queue; 10208 } 10209 clear()10210 void clear() VULKAN_HPP_NOEXCEPT 10211 { 10212 m_queue = nullptr; 10213 m_dispatcher = nullptr; 10214 } 10215 release()10216 VULKAN_HPP_NAMESPACE::Queue release() 10217 { 10218 m_dispatcher = nullptr; 10219 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_queue, nullptr ); 10220 } 10221 getDispatcher() const10222 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 10223 { 10224 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 10225 return m_dispatcher; 10226 } 10227 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue & rhs)10228 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue & rhs ) VULKAN_HPP_NOEXCEPT 10229 { 10230 std::swap( m_queue, rhs.m_queue ); 10231 std::swap( m_dispatcher, rhs.m_dispatcher ); 10232 } 10233 10234 //=== VK_VERSION_1_0 === 10235 10236 void submit( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits, 10237 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 10238 10239 void waitIdle() const; 10240 10241 void bindSparse( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo, 10242 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 10243 10244 //=== VK_VERSION_1_3 === 10245 10246 void submit2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits, 10247 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 10248 10249 //=== VK_KHR_swapchain === 10250 10251 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo ) const; 10252 10253 //=== VK_EXT_debug_utils === 10254 10255 void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; 10256 10257 void endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT; 10258 10259 void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT; 10260 10261 //=== VK_NV_device_diagnostic_checkpoints === 10262 10263 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> getCheckpointDataNV() const; 10264 10265 //=== VK_INTEL_performance_query === 10266 10267 void setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const; 10268 10269 //=== VK_KHR_synchronization2 === 10270 10271 void submit2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits, 10272 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 10273 10274 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> getCheckpointData2NV() const; 10275 10276 //=== VK_NV_low_latency2 === 10277 10278 void notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT; 10279 10280 private: 10281 VULKAN_HPP_NAMESPACE::Queue m_queue = {}; 10282 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 10283 }; 10284 10285 class RenderPass 10286 { 10287 public: 10288 using CType = VkRenderPass; 10289 using CppType = VULKAN_HPP_NAMESPACE::RenderPass; 10290 10291 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass; 10292 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 10293 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass; 10294 10295 public: 10296 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)10297 RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10298 VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & createInfo, 10299 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10300 { 10301 *this = device.createRenderPass( createInfo, allocator ); 10302 } 10303 # endif 10304 10305 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)10306 RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10307 VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo, 10308 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10309 { 10310 *this = device.createRenderPass2( createInfo, allocator ); 10311 } 10312 # endif 10313 RenderPass(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkRenderPass renderPass,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)10314 RenderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10315 VkRenderPass renderPass, 10316 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10317 : m_device( device ) 10318 , m_renderPass( renderPass ) 10319 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 10320 , m_dispatcher( device.getDispatcher() ) 10321 { 10322 } 10323 RenderPass(std::nullptr_t)10324 RenderPass( std::nullptr_t ) {} 10325 ~RenderPass()10326 ~RenderPass() 10327 { 10328 clear(); 10329 } 10330 10331 RenderPass() = delete; 10332 RenderPass( RenderPass const & ) = delete; 10333 RenderPass(RenderPass && rhs)10334 RenderPass( RenderPass && rhs ) VULKAN_HPP_NOEXCEPT 10335 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 10336 , m_renderPass( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_renderPass, {} ) ) 10337 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 10338 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 10339 { 10340 } 10341 10342 RenderPass & operator=( RenderPass const & ) = delete; 10343 operator =(RenderPass && rhs)10344 RenderPass & operator=( RenderPass && rhs ) VULKAN_HPP_NOEXCEPT 10345 { 10346 if ( this != &rhs ) 10347 { 10348 std::swap( m_device, rhs.m_device ); 10349 std::swap( m_renderPass, rhs.m_renderPass ); 10350 std::swap( m_allocator, rhs.m_allocator ); 10351 std::swap( m_dispatcher, rhs.m_dispatcher ); 10352 } 10353 return *this; 10354 } 10355 operator *() const10356 VULKAN_HPP_NAMESPACE::RenderPass const & operator*() const VULKAN_HPP_NOEXCEPT 10357 { 10358 return m_renderPass; 10359 } 10360 operator VULKAN_HPP_NAMESPACE::RenderPass() const10361 operator VULKAN_HPP_NAMESPACE::RenderPass() const VULKAN_HPP_NOEXCEPT 10362 { 10363 return m_renderPass; 10364 } 10365 clear()10366 void clear() VULKAN_HPP_NOEXCEPT 10367 { 10368 if ( m_renderPass ) 10369 { 10370 getDispatcher()->vkDestroyRenderPass( 10371 static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( m_renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 10372 } 10373 m_device = nullptr; 10374 m_renderPass = nullptr; 10375 m_allocator = nullptr; 10376 m_dispatcher = nullptr; 10377 } 10378 release()10379 VULKAN_HPP_NAMESPACE::RenderPass release() 10380 { 10381 m_device = nullptr; 10382 m_allocator = nullptr; 10383 m_dispatcher = nullptr; 10384 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_renderPass, nullptr ); 10385 } 10386 getDevice() const10387 VULKAN_HPP_NAMESPACE::Device getDevice() const 10388 { 10389 return m_device; 10390 } 10391 getDispatcher() const10392 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 10393 { 10394 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 10395 return m_dispatcher; 10396 } 10397 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass & rhs)10398 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass & rhs ) VULKAN_HPP_NOEXCEPT 10399 { 10400 std::swap( m_device, rhs.m_device ); 10401 std::swap( m_renderPass, rhs.m_renderPass ); 10402 std::swap( m_allocator, rhs.m_allocator ); 10403 std::swap( m_dispatcher, rhs.m_dispatcher ); 10404 } 10405 10406 //=== VK_VERSION_1_0 === 10407 10408 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT; 10409 10410 //=== VK_HUAWEI_subpass_shading === 10411 10412 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getSubpassShadingMaxWorkgroupSizeHUAWEI() const; 10413 10414 private: 10415 VULKAN_HPP_NAMESPACE::Device m_device = {}; 10416 VULKAN_HPP_NAMESPACE::RenderPass m_renderPass = {}; 10417 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 10418 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 10419 }; 10420 10421 class Sampler 10422 { 10423 public: 10424 using CType = VkSampler; 10425 using CppType = VULKAN_HPP_NAMESPACE::Sampler; 10426 10427 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler; 10428 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 10429 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler; 10430 10431 public: 10432 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)10433 Sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10434 VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & createInfo, 10435 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10436 { 10437 *this = device.createSampler( createInfo, allocator ); 10438 } 10439 # endif 10440 Sampler(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkSampler sampler,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)10441 Sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10442 VkSampler sampler, 10443 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10444 : m_device( device ) 10445 , m_sampler( sampler ) 10446 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 10447 , m_dispatcher( device.getDispatcher() ) 10448 { 10449 } 10450 Sampler(std::nullptr_t)10451 Sampler( std::nullptr_t ) {} 10452 ~Sampler()10453 ~Sampler() 10454 { 10455 clear(); 10456 } 10457 10458 Sampler() = delete; 10459 Sampler( Sampler const & ) = delete; 10460 Sampler(Sampler && rhs)10461 Sampler( Sampler && rhs ) VULKAN_HPP_NOEXCEPT 10462 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 10463 , m_sampler( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_sampler, {} ) ) 10464 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 10465 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 10466 { 10467 } 10468 10469 Sampler & operator=( Sampler const & ) = delete; 10470 operator =(Sampler && rhs)10471 Sampler & operator=( Sampler && rhs ) VULKAN_HPP_NOEXCEPT 10472 { 10473 if ( this != &rhs ) 10474 { 10475 std::swap( m_device, rhs.m_device ); 10476 std::swap( m_sampler, rhs.m_sampler ); 10477 std::swap( m_allocator, rhs.m_allocator ); 10478 std::swap( m_dispatcher, rhs.m_dispatcher ); 10479 } 10480 return *this; 10481 } 10482 operator *() const10483 VULKAN_HPP_NAMESPACE::Sampler const & operator*() const VULKAN_HPP_NOEXCEPT 10484 { 10485 return m_sampler; 10486 } 10487 operator VULKAN_HPP_NAMESPACE::Sampler() const10488 operator VULKAN_HPP_NAMESPACE::Sampler() const VULKAN_HPP_NOEXCEPT 10489 { 10490 return m_sampler; 10491 } 10492 clear()10493 void clear() VULKAN_HPP_NOEXCEPT 10494 { 10495 if ( m_sampler ) 10496 { 10497 getDispatcher()->vkDestroySampler( 10498 static_cast<VkDevice>( m_device ), static_cast<VkSampler>( m_sampler ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 10499 } 10500 m_device = nullptr; 10501 m_sampler = nullptr; 10502 m_allocator = nullptr; 10503 m_dispatcher = nullptr; 10504 } 10505 release()10506 VULKAN_HPP_NAMESPACE::Sampler release() 10507 { 10508 m_device = nullptr; 10509 m_allocator = nullptr; 10510 m_dispatcher = nullptr; 10511 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_sampler, nullptr ); 10512 } 10513 getDevice() const10514 VULKAN_HPP_NAMESPACE::Device getDevice() const 10515 { 10516 return m_device; 10517 } 10518 getDispatcher() const10519 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 10520 { 10521 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 10522 return m_dispatcher; 10523 } 10524 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler & rhs)10525 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler & rhs ) VULKAN_HPP_NOEXCEPT 10526 { 10527 std::swap( m_device, rhs.m_device ); 10528 std::swap( m_sampler, rhs.m_sampler ); 10529 std::swap( m_allocator, rhs.m_allocator ); 10530 std::swap( m_dispatcher, rhs.m_dispatcher ); 10531 } 10532 10533 private: 10534 VULKAN_HPP_NAMESPACE::Device m_device = {}; 10535 VULKAN_HPP_NAMESPACE::Sampler m_sampler = {}; 10536 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 10537 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 10538 }; 10539 10540 class SamplerYcbcrConversion 10541 { 10542 public: 10543 using CType = VkSamplerYcbcrConversion; 10544 using CppType = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; 10545 10546 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion; 10547 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 10548 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion; 10549 10550 public: 10551 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)10552 SamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10553 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo, 10554 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10555 { 10556 *this = device.createSamplerYcbcrConversion( createInfo, allocator ); 10557 } 10558 # endif 10559 SamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkSamplerYcbcrConversion ycbcrConversion,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)10560 SamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10561 VkSamplerYcbcrConversion ycbcrConversion, 10562 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10563 : m_device( device ) 10564 , m_ycbcrConversion( ycbcrConversion ) 10565 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 10566 , m_dispatcher( device.getDispatcher() ) 10567 { 10568 } 10569 SamplerYcbcrConversion(std::nullptr_t)10570 SamplerYcbcrConversion( std::nullptr_t ) {} 10571 ~SamplerYcbcrConversion()10572 ~SamplerYcbcrConversion() 10573 { 10574 clear(); 10575 } 10576 10577 SamplerYcbcrConversion() = delete; 10578 SamplerYcbcrConversion( SamplerYcbcrConversion const & ) = delete; 10579 SamplerYcbcrConversion(SamplerYcbcrConversion && rhs)10580 SamplerYcbcrConversion( SamplerYcbcrConversion && rhs ) VULKAN_HPP_NOEXCEPT 10581 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 10582 , m_ycbcrConversion( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_ycbcrConversion, {} ) ) 10583 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 10584 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 10585 { 10586 } 10587 10588 SamplerYcbcrConversion & operator=( SamplerYcbcrConversion const & ) = delete; 10589 operator =(SamplerYcbcrConversion && rhs)10590 SamplerYcbcrConversion & operator=( SamplerYcbcrConversion && rhs ) VULKAN_HPP_NOEXCEPT 10591 { 10592 if ( this != &rhs ) 10593 { 10594 std::swap( m_device, rhs.m_device ); 10595 std::swap( m_ycbcrConversion, rhs.m_ycbcrConversion ); 10596 std::swap( m_allocator, rhs.m_allocator ); 10597 std::swap( m_dispatcher, rhs.m_dispatcher ); 10598 } 10599 return *this; 10600 } 10601 operator *() const10602 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & operator*() const VULKAN_HPP_NOEXCEPT 10603 { 10604 return m_ycbcrConversion; 10605 } 10606 operator VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion() const10607 operator VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT 10608 { 10609 return m_ycbcrConversion; 10610 } 10611 clear()10612 void clear() VULKAN_HPP_NOEXCEPT 10613 { 10614 if ( m_ycbcrConversion ) 10615 { 10616 getDispatcher()->vkDestroySamplerYcbcrConversion( static_cast<VkDevice>( m_device ), 10617 static_cast<VkSamplerYcbcrConversion>( m_ycbcrConversion ), 10618 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 10619 } 10620 m_device = nullptr; 10621 m_ycbcrConversion = nullptr; 10622 m_allocator = nullptr; 10623 m_dispatcher = nullptr; 10624 } 10625 release()10626 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion release() 10627 { 10628 m_device = nullptr; 10629 m_allocator = nullptr; 10630 m_dispatcher = nullptr; 10631 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_ycbcrConversion, nullptr ); 10632 } 10633 getDevice() const10634 VULKAN_HPP_NAMESPACE::Device getDevice() const 10635 { 10636 return m_device; 10637 } 10638 getDispatcher() const10639 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 10640 { 10641 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 10642 return m_dispatcher; 10643 } 10644 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion & rhs)10645 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion & rhs ) VULKAN_HPP_NOEXCEPT 10646 { 10647 std::swap( m_device, rhs.m_device ); 10648 std::swap( m_ycbcrConversion, rhs.m_ycbcrConversion ); 10649 std::swap( m_allocator, rhs.m_allocator ); 10650 std::swap( m_dispatcher, rhs.m_dispatcher ); 10651 } 10652 10653 private: 10654 VULKAN_HPP_NAMESPACE::Device m_device = {}; 10655 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion m_ycbcrConversion = {}; 10656 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 10657 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 10658 }; 10659 10660 class Semaphore 10661 { 10662 public: 10663 using CType = VkSemaphore; 10664 using CppType = VULKAN_HPP_NAMESPACE::Semaphore; 10665 10666 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore; 10667 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 10668 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore; 10669 10670 public: 10671 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)10672 Semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10673 VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & createInfo, 10674 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10675 { 10676 *this = device.createSemaphore( createInfo, allocator ); 10677 } 10678 # endif 10679 Semaphore(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkSemaphore semaphore,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)10680 Semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10681 VkSemaphore semaphore, 10682 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10683 : m_device( device ) 10684 , m_semaphore( semaphore ) 10685 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 10686 , m_dispatcher( device.getDispatcher() ) 10687 { 10688 } 10689 Semaphore(std::nullptr_t)10690 Semaphore( std::nullptr_t ) {} 10691 ~Semaphore()10692 ~Semaphore() 10693 { 10694 clear(); 10695 } 10696 10697 Semaphore() = delete; 10698 Semaphore( Semaphore const & ) = delete; 10699 Semaphore(Semaphore && rhs)10700 Semaphore( Semaphore && rhs ) VULKAN_HPP_NOEXCEPT 10701 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 10702 , m_semaphore( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_semaphore, {} ) ) 10703 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 10704 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 10705 { 10706 } 10707 10708 Semaphore & operator=( Semaphore const & ) = delete; 10709 operator =(Semaphore && rhs)10710 Semaphore & operator=( Semaphore && rhs ) VULKAN_HPP_NOEXCEPT 10711 { 10712 if ( this != &rhs ) 10713 { 10714 std::swap( m_device, rhs.m_device ); 10715 std::swap( m_semaphore, rhs.m_semaphore ); 10716 std::swap( m_allocator, rhs.m_allocator ); 10717 std::swap( m_dispatcher, rhs.m_dispatcher ); 10718 } 10719 return *this; 10720 } 10721 operator *() const10722 VULKAN_HPP_NAMESPACE::Semaphore const & operator*() const VULKAN_HPP_NOEXCEPT 10723 { 10724 return m_semaphore; 10725 } 10726 operator VULKAN_HPP_NAMESPACE::Semaphore() const10727 operator VULKAN_HPP_NAMESPACE::Semaphore() const VULKAN_HPP_NOEXCEPT 10728 { 10729 return m_semaphore; 10730 } 10731 clear()10732 void clear() VULKAN_HPP_NOEXCEPT 10733 { 10734 if ( m_semaphore ) 10735 { 10736 getDispatcher()->vkDestroySemaphore( 10737 static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 10738 } 10739 m_device = nullptr; 10740 m_semaphore = nullptr; 10741 m_allocator = nullptr; 10742 m_dispatcher = nullptr; 10743 } 10744 release()10745 VULKAN_HPP_NAMESPACE::Semaphore release() 10746 { 10747 m_device = nullptr; 10748 m_allocator = nullptr; 10749 m_dispatcher = nullptr; 10750 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_semaphore, nullptr ); 10751 } 10752 getDevice() const10753 VULKAN_HPP_NAMESPACE::Device getDevice() const 10754 { 10755 return m_device; 10756 } 10757 getDispatcher() const10758 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 10759 { 10760 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 10761 return m_dispatcher; 10762 } 10763 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore & rhs)10764 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore & rhs ) VULKAN_HPP_NOEXCEPT 10765 { 10766 std::swap( m_device, rhs.m_device ); 10767 std::swap( m_semaphore, rhs.m_semaphore ); 10768 std::swap( m_allocator, rhs.m_allocator ); 10769 std::swap( m_dispatcher, rhs.m_dispatcher ); 10770 } 10771 10772 //=== VK_VERSION_1_2 === 10773 10774 VULKAN_HPP_NODISCARD uint64_t getCounterValue() const; 10775 10776 //=== VK_KHR_timeline_semaphore === 10777 10778 VULKAN_HPP_NODISCARD uint64_t getCounterValueKHR() const; 10779 10780 private: 10781 VULKAN_HPP_NAMESPACE::Device m_device = {}; 10782 VULKAN_HPP_NAMESPACE::Semaphore m_semaphore = {}; 10783 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 10784 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 10785 }; 10786 10787 class ShaderEXT 10788 { 10789 public: 10790 using CType = VkShaderEXT; 10791 using CppType = VULKAN_HPP_NAMESPACE::ShaderEXT; 10792 10793 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderEXT; 10794 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 10795 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 10796 10797 public: 10798 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) ShaderEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)10799 ShaderEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10800 VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const & createInfo, 10801 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10802 { 10803 *this = device.createShaderEXT( createInfo, allocator ); 10804 } 10805 # endif 10806 ShaderEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkShaderEXT shader,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr,VULKAN_HPP_NAMESPACE::Result successCode=VULKAN_HPP_NAMESPACE::Result::eSuccess)10807 ShaderEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10808 VkShaderEXT shader, 10809 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr, 10810 VULKAN_HPP_NAMESPACE::Result successCode = VULKAN_HPP_NAMESPACE::Result::eSuccess ) 10811 : m_device( device ) 10812 , m_shader( shader ) 10813 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 10814 , m_constructorSuccessCode( successCode ) 10815 , m_dispatcher( device.getDispatcher() ) 10816 { 10817 } 10818 ShaderEXT(std::nullptr_t)10819 ShaderEXT( std::nullptr_t ) {} 10820 ~ShaderEXT()10821 ~ShaderEXT() 10822 { 10823 clear(); 10824 } 10825 10826 ShaderEXT() = delete; 10827 ShaderEXT( ShaderEXT const & ) = delete; 10828 ShaderEXT(ShaderEXT && rhs)10829 ShaderEXT( ShaderEXT && rhs ) VULKAN_HPP_NOEXCEPT 10830 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 10831 , m_shader( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shader, {} ) ) 10832 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 10833 , m_constructorSuccessCode( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_constructorSuccessCode, {} ) ) 10834 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 10835 { 10836 } 10837 10838 ShaderEXT & operator=( ShaderEXT const & ) = delete; 10839 operator =(ShaderEXT && rhs)10840 ShaderEXT & operator=( ShaderEXT && rhs ) VULKAN_HPP_NOEXCEPT 10841 { 10842 if ( this != &rhs ) 10843 { 10844 std::swap( m_device, rhs.m_device ); 10845 std::swap( m_shader, rhs.m_shader ); 10846 std::swap( m_allocator, rhs.m_allocator ); 10847 std::swap( m_constructorSuccessCode, rhs.m_constructorSuccessCode ); 10848 std::swap( m_dispatcher, rhs.m_dispatcher ); 10849 } 10850 return *this; 10851 } 10852 operator *() const10853 VULKAN_HPP_NAMESPACE::ShaderEXT const & operator*() const VULKAN_HPP_NOEXCEPT 10854 { 10855 return m_shader; 10856 } 10857 operator VULKAN_HPP_NAMESPACE::ShaderEXT() const10858 operator VULKAN_HPP_NAMESPACE::ShaderEXT() const VULKAN_HPP_NOEXCEPT 10859 { 10860 return m_shader; 10861 } 10862 clear()10863 void clear() VULKAN_HPP_NOEXCEPT 10864 { 10865 if ( m_shader ) 10866 { 10867 getDispatcher()->vkDestroyShaderEXT( 10868 static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( m_shader ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 10869 } 10870 m_device = nullptr; 10871 m_shader = nullptr; 10872 m_allocator = nullptr; 10873 m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::Result::eErrorUnknown; 10874 m_dispatcher = nullptr; 10875 } 10876 release()10877 VULKAN_HPP_NAMESPACE::ShaderEXT release() 10878 { 10879 m_device = nullptr; 10880 m_allocator = nullptr; 10881 m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::Result::eErrorUnknown; 10882 m_dispatcher = nullptr; 10883 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_shader, nullptr ); 10884 } 10885 getConstructorSuccessCode() const10886 VULKAN_HPP_NAMESPACE::Result getConstructorSuccessCode() const 10887 { 10888 return m_constructorSuccessCode; 10889 } 10890 getDevice() const10891 VULKAN_HPP_NAMESPACE::Device getDevice() const 10892 { 10893 return m_device; 10894 } 10895 getDispatcher() const10896 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 10897 { 10898 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 10899 return m_dispatcher; 10900 } 10901 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT & rhs)10902 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT & rhs ) VULKAN_HPP_NOEXCEPT 10903 { 10904 std::swap( m_device, rhs.m_device ); 10905 std::swap( m_shader, rhs.m_shader ); 10906 std::swap( m_allocator, rhs.m_allocator ); 10907 std::swap( m_constructorSuccessCode, rhs.m_constructorSuccessCode ); 10908 std::swap( m_dispatcher, rhs.m_dispatcher ); 10909 } 10910 10911 //=== VK_EXT_shader_object === 10912 10913 VULKAN_HPP_NODISCARD std::vector<uint8_t> getBinaryData() const; 10914 10915 private: 10916 VULKAN_HPP_NAMESPACE::Device m_device = {}; 10917 VULKAN_HPP_NAMESPACE::ShaderEXT m_shader = {}; 10918 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 10919 VULKAN_HPP_NAMESPACE::Result m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::Result::eErrorUnknown; 10920 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 10921 }; 10922 10923 class ShaderEXTs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT> 10924 { 10925 public: 10926 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) ShaderEXTs(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)10927 ShaderEXTs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10928 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos, 10929 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10930 { 10931 *this = device.createShadersEXT( createInfos, allocator ); 10932 } 10933 # endif 10934 ShaderEXTs(std::nullptr_t)10935 ShaderEXTs( std::nullptr_t ) {} 10936 10937 ShaderEXTs() = delete; 10938 ShaderEXTs( ShaderEXTs const & ) = delete; 10939 ShaderEXTs( ShaderEXTs && rhs ) = default; 10940 ShaderEXTs & operator=( ShaderEXTs const & ) = delete; 10941 ShaderEXTs & operator=( ShaderEXTs && rhs ) = default; 10942 10943 private: ShaderEXTs(std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT> && rhs)10944 ShaderEXTs( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT> && rhs ) 10945 { 10946 std::swap( *this, rhs ); 10947 } 10948 }; 10949 10950 class ShaderModule 10951 { 10952 public: 10953 using CType = VkShaderModule; 10954 using CppType = VULKAN_HPP_NAMESPACE::ShaderModule; 10955 10956 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule; 10957 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 10958 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule; 10959 10960 public: 10961 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)10962 ShaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10963 VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & createInfo, 10964 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10965 { 10966 *this = device.createShaderModule( createInfo, allocator ); 10967 } 10968 # endif 10969 ShaderModule(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkShaderModule shaderModule,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)10970 ShaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 10971 VkShaderModule shaderModule, 10972 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 10973 : m_device( device ) 10974 , m_shaderModule( shaderModule ) 10975 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 10976 , m_dispatcher( device.getDispatcher() ) 10977 { 10978 } 10979 ShaderModule(std::nullptr_t)10980 ShaderModule( std::nullptr_t ) {} 10981 ~ShaderModule()10982 ~ShaderModule() 10983 { 10984 clear(); 10985 } 10986 10987 ShaderModule() = delete; 10988 ShaderModule( ShaderModule const & ) = delete; 10989 ShaderModule(ShaderModule && rhs)10990 ShaderModule( ShaderModule && rhs ) VULKAN_HPP_NOEXCEPT 10991 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 10992 , m_shaderModule( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_shaderModule, {} ) ) 10993 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 10994 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 10995 { 10996 } 10997 10998 ShaderModule & operator=( ShaderModule const & ) = delete; 10999 operator =(ShaderModule && rhs)11000 ShaderModule & operator=( ShaderModule && rhs ) VULKAN_HPP_NOEXCEPT 11001 { 11002 if ( this != &rhs ) 11003 { 11004 std::swap( m_device, rhs.m_device ); 11005 std::swap( m_shaderModule, rhs.m_shaderModule ); 11006 std::swap( m_allocator, rhs.m_allocator ); 11007 std::swap( m_dispatcher, rhs.m_dispatcher ); 11008 } 11009 return *this; 11010 } 11011 operator *() const11012 VULKAN_HPP_NAMESPACE::ShaderModule const & operator*() const VULKAN_HPP_NOEXCEPT 11013 { 11014 return m_shaderModule; 11015 } 11016 operator VULKAN_HPP_NAMESPACE::ShaderModule() const11017 operator VULKAN_HPP_NAMESPACE::ShaderModule() const VULKAN_HPP_NOEXCEPT 11018 { 11019 return m_shaderModule; 11020 } 11021 clear()11022 void clear() VULKAN_HPP_NOEXCEPT 11023 { 11024 if ( m_shaderModule ) 11025 { 11026 getDispatcher()->vkDestroyShaderModule( 11027 static_cast<VkDevice>( m_device ), static_cast<VkShaderModule>( m_shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 11028 } 11029 m_device = nullptr; 11030 m_shaderModule = nullptr; 11031 m_allocator = nullptr; 11032 m_dispatcher = nullptr; 11033 } 11034 release()11035 VULKAN_HPP_NAMESPACE::ShaderModule release() 11036 { 11037 m_device = nullptr; 11038 m_allocator = nullptr; 11039 m_dispatcher = nullptr; 11040 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_shaderModule, nullptr ); 11041 } 11042 getDevice() const11043 VULKAN_HPP_NAMESPACE::Device getDevice() const 11044 { 11045 return m_device; 11046 } 11047 getDispatcher() const11048 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 11049 { 11050 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 11051 return m_dispatcher; 11052 } 11053 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule & rhs)11054 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule & rhs ) VULKAN_HPP_NOEXCEPT 11055 { 11056 std::swap( m_device, rhs.m_device ); 11057 std::swap( m_shaderModule, rhs.m_shaderModule ); 11058 std::swap( m_allocator, rhs.m_allocator ); 11059 std::swap( m_dispatcher, rhs.m_dispatcher ); 11060 } 11061 11062 //=== VK_EXT_shader_module_identifier === 11063 11064 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT getIdentifierEXT() const VULKAN_HPP_NOEXCEPT; 11065 11066 private: 11067 VULKAN_HPP_NAMESPACE::Device m_device = {}; 11068 VULKAN_HPP_NAMESPACE::ShaderModule m_shaderModule = {}; 11069 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 11070 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 11071 }; 11072 11073 class SurfaceKHR 11074 { 11075 public: 11076 using CType = VkSurfaceKHR; 11077 using CppType = VULKAN_HPP_NAMESPACE::SurfaceKHR; 11078 11079 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR; 11080 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 11081 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR; 11082 11083 public: 11084 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11085 # 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)11086 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11087 VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & createInfo, 11088 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11089 { 11090 *this = instance.createAndroidSurfaceKHR( createInfo, allocator ); 11091 } 11092 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 11093 # endif 11094 11095 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11096 # 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)11097 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11098 VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & createInfo, 11099 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11100 { 11101 *this = instance.createDirectFBSurfaceEXT( createInfo, allocator ); 11102 } 11103 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 11104 # endif 11105 11106 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)11107 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11108 VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & createInfo, 11109 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11110 { 11111 *this = instance.createDisplayPlaneSurfaceKHR( createInfo, allocator ); 11112 } 11113 # endif 11114 11115 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)11116 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11117 VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & createInfo, 11118 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11119 { 11120 *this = instance.createHeadlessSurfaceEXT( createInfo, allocator ); 11121 } 11122 # endif 11123 11124 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11125 # 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)11126 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11127 VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & createInfo, 11128 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11129 { 11130 *this = instance.createIOSSurfaceMVK( createInfo, allocator ); 11131 } 11132 # endif /*VK_USE_PLATFORM_IOS_MVK*/ 11133 # endif 11134 11135 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11136 # 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)11137 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11138 VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, 11139 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11140 { 11141 *this = instance.createImagePipeSurfaceFUCHSIA( createInfo, allocator ); 11142 } 11143 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 11144 # endif 11145 11146 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11147 # 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)11148 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11149 VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & createInfo, 11150 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11151 { 11152 *this = instance.createMacOSSurfaceMVK( createInfo, allocator ); 11153 } 11154 # endif /*VK_USE_PLATFORM_MACOS_MVK*/ 11155 # endif 11156 11157 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11158 # 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)11159 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11160 VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & createInfo, 11161 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11162 { 11163 *this = instance.createMetalSurfaceEXT( createInfo, allocator ); 11164 } 11165 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 11166 # endif 11167 11168 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11169 # 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)11170 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11171 VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & createInfo, 11172 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11173 { 11174 *this = instance.createScreenSurfaceQNX( createInfo, allocator ); 11175 } 11176 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 11177 # endif 11178 11179 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11180 # 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)11181 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11182 VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & createInfo, 11183 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11184 { 11185 *this = instance.createStreamDescriptorSurfaceGGP( createInfo, allocator ); 11186 } 11187 # endif /*VK_USE_PLATFORM_GGP*/ 11188 # endif 11189 11190 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11191 # 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)11192 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11193 VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & createInfo, 11194 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11195 { 11196 *this = instance.createViSurfaceNN( createInfo, allocator ); 11197 } 11198 # endif /*VK_USE_PLATFORM_VI_NN*/ 11199 # endif 11200 11201 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11202 # 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)11203 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11204 VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & createInfo, 11205 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11206 { 11207 *this = instance.createWaylandSurfaceKHR( createInfo, allocator ); 11208 } 11209 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 11210 # endif 11211 11212 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11213 # 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)11214 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11215 VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & createInfo, 11216 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11217 { 11218 *this = instance.createWin32SurfaceKHR( createInfo, allocator ); 11219 } 11220 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 11221 # endif 11222 11223 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11224 # 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)11225 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11226 VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & createInfo, 11227 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11228 { 11229 *this = instance.createXcbSurfaceKHR( createInfo, allocator ); 11230 } 11231 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 11232 # endif 11233 11234 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11235 # 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)11236 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11237 VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & createInfo, 11238 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11239 { 11240 *this = instance.createXlibSurfaceKHR( createInfo, allocator ); 11241 } 11242 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 11243 # endif 11244 SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance,VkSurfaceKHR surface,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)11245 SurfaceKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const & instance, 11246 VkSurfaceKHR surface, 11247 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11248 : m_instance( instance ) 11249 , m_surface( surface ) 11250 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 11251 , m_dispatcher( instance.getDispatcher() ) 11252 { 11253 } 11254 SurfaceKHR(std::nullptr_t)11255 SurfaceKHR( std::nullptr_t ) {} 11256 ~SurfaceKHR()11257 ~SurfaceKHR() 11258 { 11259 clear(); 11260 } 11261 11262 SurfaceKHR() = delete; 11263 SurfaceKHR( SurfaceKHR const & ) = delete; 11264 SurfaceKHR(SurfaceKHR && rhs)11265 SurfaceKHR( SurfaceKHR && rhs ) VULKAN_HPP_NOEXCEPT 11266 : m_instance( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_instance, {} ) ) 11267 , m_surface( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_surface, {} ) ) 11268 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 11269 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 11270 { 11271 } 11272 11273 SurfaceKHR & operator=( SurfaceKHR const & ) = delete; 11274 operator =(SurfaceKHR && rhs)11275 SurfaceKHR & operator=( SurfaceKHR && rhs ) VULKAN_HPP_NOEXCEPT 11276 { 11277 if ( this != &rhs ) 11278 { 11279 std::swap( m_instance, rhs.m_instance ); 11280 std::swap( m_surface, rhs.m_surface ); 11281 std::swap( m_allocator, rhs.m_allocator ); 11282 std::swap( m_dispatcher, rhs.m_dispatcher ); 11283 } 11284 return *this; 11285 } 11286 operator *() const11287 VULKAN_HPP_NAMESPACE::SurfaceKHR const & operator*() const VULKAN_HPP_NOEXCEPT 11288 { 11289 return m_surface; 11290 } 11291 operator VULKAN_HPP_NAMESPACE::SurfaceKHR() const11292 operator VULKAN_HPP_NAMESPACE::SurfaceKHR() const VULKAN_HPP_NOEXCEPT 11293 { 11294 return m_surface; 11295 } 11296 clear()11297 void clear() VULKAN_HPP_NOEXCEPT 11298 { 11299 if ( m_surface ) 11300 { 11301 getDispatcher()->vkDestroySurfaceKHR( 11302 static_cast<VkInstance>( m_instance ), static_cast<VkSurfaceKHR>( m_surface ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 11303 } 11304 m_instance = nullptr; 11305 m_surface = nullptr; 11306 m_allocator = nullptr; 11307 m_dispatcher = nullptr; 11308 } 11309 release()11310 VULKAN_HPP_NAMESPACE::SurfaceKHR release() 11311 { 11312 m_instance = nullptr; 11313 m_allocator = nullptr; 11314 m_dispatcher = nullptr; 11315 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_surface, nullptr ); 11316 } 11317 getInstance() const11318 VULKAN_HPP_NAMESPACE::Instance getInstance() const 11319 { 11320 return m_instance; 11321 } 11322 getDispatcher() const11323 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * getDispatcher() const 11324 { 11325 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 11326 return m_dispatcher; 11327 } 11328 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR & rhs)11329 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR & rhs ) VULKAN_HPP_NOEXCEPT 11330 { 11331 std::swap( m_instance, rhs.m_instance ); 11332 std::swap( m_surface, rhs.m_surface ); 11333 std::swap( m_allocator, rhs.m_allocator ); 11334 std::swap( m_dispatcher, rhs.m_dispatcher ); 11335 } 11336 11337 private: 11338 VULKAN_HPP_NAMESPACE::Instance m_instance = {}; 11339 VULKAN_HPP_NAMESPACE::SurfaceKHR m_surface = {}; 11340 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 11341 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const * m_dispatcher = nullptr; 11342 }; 11343 11344 class SwapchainKHR 11345 { 11346 public: 11347 using CType = VkSwapchainKHR; 11348 using CppType = VULKAN_HPP_NAMESPACE::SwapchainKHR; 11349 11350 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR; 11351 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 11352 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR; 11353 11354 public: 11355 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)11356 SwapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11357 VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo, 11358 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11359 { 11360 *this = device.createSwapchainKHR( createInfo, allocator ); 11361 } 11362 # endif 11363 SwapchainKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkSwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)11364 SwapchainKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11365 VkSwapchainKHR swapchain, 11366 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11367 : m_device( device ) 11368 , m_swapchain( swapchain ) 11369 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 11370 , m_dispatcher( device.getDispatcher() ) 11371 { 11372 } 11373 SwapchainKHR(std::nullptr_t)11374 SwapchainKHR( std::nullptr_t ) {} 11375 ~SwapchainKHR()11376 ~SwapchainKHR() 11377 { 11378 clear(); 11379 } 11380 11381 SwapchainKHR() = delete; 11382 SwapchainKHR( SwapchainKHR const & ) = delete; 11383 SwapchainKHR(SwapchainKHR && rhs)11384 SwapchainKHR( SwapchainKHR && rhs ) VULKAN_HPP_NOEXCEPT 11385 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 11386 , m_swapchain( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_swapchain, {} ) ) 11387 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 11388 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 11389 { 11390 } 11391 11392 SwapchainKHR & operator=( SwapchainKHR const & ) = delete; 11393 operator =(SwapchainKHR && rhs)11394 SwapchainKHR & operator=( SwapchainKHR && rhs ) VULKAN_HPP_NOEXCEPT 11395 { 11396 if ( this != &rhs ) 11397 { 11398 std::swap( m_device, rhs.m_device ); 11399 std::swap( m_swapchain, rhs.m_swapchain ); 11400 std::swap( m_allocator, rhs.m_allocator ); 11401 std::swap( m_dispatcher, rhs.m_dispatcher ); 11402 } 11403 return *this; 11404 } 11405 operator *() const11406 VULKAN_HPP_NAMESPACE::SwapchainKHR const & operator*() const VULKAN_HPP_NOEXCEPT 11407 { 11408 return m_swapchain; 11409 } 11410 operator VULKAN_HPP_NAMESPACE::SwapchainKHR() const11411 operator VULKAN_HPP_NAMESPACE::SwapchainKHR() const VULKAN_HPP_NOEXCEPT 11412 { 11413 return m_swapchain; 11414 } 11415 clear()11416 void clear() VULKAN_HPP_NOEXCEPT 11417 { 11418 if ( m_swapchain ) 11419 { 11420 getDispatcher()->vkDestroySwapchainKHR( 11421 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 11422 } 11423 m_device = nullptr; 11424 m_swapchain = nullptr; 11425 m_allocator = nullptr; 11426 m_dispatcher = nullptr; 11427 } 11428 release()11429 VULKAN_HPP_NAMESPACE::SwapchainKHR release() 11430 { 11431 m_device = nullptr; 11432 m_allocator = nullptr; 11433 m_dispatcher = nullptr; 11434 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_swapchain, nullptr ); 11435 } 11436 getDevice() const11437 VULKAN_HPP_NAMESPACE::Device getDevice() const 11438 { 11439 return m_device; 11440 } 11441 getDispatcher() const11442 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 11443 { 11444 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 11445 return m_dispatcher; 11446 } 11447 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR & rhs)11448 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR & rhs ) VULKAN_HPP_NOEXCEPT 11449 { 11450 std::swap( m_device, rhs.m_device ); 11451 std::swap( m_swapchain, rhs.m_swapchain ); 11452 std::swap( m_allocator, rhs.m_allocator ); 11453 std::swap( m_dispatcher, rhs.m_dispatcher ); 11454 } 11455 11456 //=== VK_KHR_swapchain === 11457 11458 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::Image> getImages() const; 11459 11460 VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t> 11461 acquireNextImage( uint64_t timeout, 11462 VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, 11463 VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT ) const; 11464 11465 //=== VK_EXT_display_control === 11466 11467 VULKAN_HPP_NODISCARD uint64_t getCounterEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter ) const; 11468 11469 //=== VK_GOOGLE_display_timing === 11470 11471 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE getRefreshCycleDurationGOOGLE() const; 11472 11473 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> getPastPresentationTimingGOOGLE() const; 11474 11475 //=== VK_KHR_shared_presentable_image === 11476 11477 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const; 11478 11479 //=== VK_AMD_display_native_hdr === 11480 11481 void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT; 11482 11483 //=== VK_KHR_present_wait === 11484 11485 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitForPresent( uint64_t presentId, uint64_t timeout ) const; 11486 11487 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 11488 //=== VK_EXT_full_screen_exclusive === 11489 11490 void acquireFullScreenExclusiveModeEXT() const; 11491 11492 void releaseFullScreenExclusiveModeEXT() const; 11493 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 11494 11495 //=== VK_NV_low_latency2 === 11496 11497 void setLatencySleepModeNV( const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo ) const; 11498 11499 void latencySleepNV( const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo ) const VULKAN_HPP_NOEXCEPT; 11500 11501 void setLatencyMarkerNV( const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT; 11502 11503 VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT; 11504 11505 private: 11506 VULKAN_HPP_NAMESPACE::Device m_device = {}; 11507 VULKAN_HPP_NAMESPACE::SwapchainKHR m_swapchain = {}; 11508 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 11509 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 11510 }; 11511 11512 class SwapchainKHRs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR> 11513 { 11514 public: 11515 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)11516 SwapchainKHRs( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11517 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, 11518 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11519 { 11520 *this = device.createSharedSwapchainsKHR( createInfos, allocator ); 11521 } 11522 # endif 11523 SwapchainKHRs(std::nullptr_t)11524 SwapchainKHRs( std::nullptr_t ) {} 11525 11526 SwapchainKHRs() = delete; 11527 SwapchainKHRs( SwapchainKHRs const & ) = delete; 11528 SwapchainKHRs( SwapchainKHRs && rhs ) = default; 11529 SwapchainKHRs & operator=( SwapchainKHRs const & ) = delete; 11530 SwapchainKHRs & operator=( SwapchainKHRs && rhs ) = default; 11531 11532 private: SwapchainKHRs(std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR> && rhs)11533 SwapchainKHRs( std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR> && rhs ) 11534 { 11535 std::swap( *this, rhs ); 11536 } 11537 }; 11538 11539 class ValidationCacheEXT 11540 { 11541 public: 11542 using CType = VkValidationCacheEXT; 11543 using CppType = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; 11544 11545 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT; 11546 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 11547 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT; 11548 11549 public: 11550 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)11551 ValidationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11552 VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & createInfo, 11553 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11554 { 11555 *this = device.createValidationCacheEXT( createInfo, allocator ); 11556 } 11557 # endif 11558 ValidationCacheEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkValidationCacheEXT validationCache,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)11559 ValidationCacheEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11560 VkValidationCacheEXT validationCache, 11561 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11562 : m_device( device ) 11563 , m_validationCache( validationCache ) 11564 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 11565 , m_dispatcher( device.getDispatcher() ) 11566 { 11567 } 11568 ValidationCacheEXT(std::nullptr_t)11569 ValidationCacheEXT( std::nullptr_t ) {} 11570 ~ValidationCacheEXT()11571 ~ValidationCacheEXT() 11572 { 11573 clear(); 11574 } 11575 11576 ValidationCacheEXT() = delete; 11577 ValidationCacheEXT( ValidationCacheEXT const & ) = delete; 11578 ValidationCacheEXT(ValidationCacheEXT && rhs)11579 ValidationCacheEXT( ValidationCacheEXT && rhs ) VULKAN_HPP_NOEXCEPT 11580 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 11581 , m_validationCache( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_validationCache, {} ) ) 11582 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 11583 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 11584 { 11585 } 11586 11587 ValidationCacheEXT & operator=( ValidationCacheEXT const & ) = delete; 11588 operator =(ValidationCacheEXT && rhs)11589 ValidationCacheEXT & operator=( ValidationCacheEXT && rhs ) VULKAN_HPP_NOEXCEPT 11590 { 11591 if ( this != &rhs ) 11592 { 11593 std::swap( m_device, rhs.m_device ); 11594 std::swap( m_validationCache, rhs.m_validationCache ); 11595 std::swap( m_allocator, rhs.m_allocator ); 11596 std::swap( m_dispatcher, rhs.m_dispatcher ); 11597 } 11598 return *this; 11599 } 11600 operator *() const11601 VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & operator*() const VULKAN_HPP_NOEXCEPT 11602 { 11603 return m_validationCache; 11604 } 11605 operator VULKAN_HPP_NAMESPACE::ValidationCacheEXT() const11606 operator VULKAN_HPP_NAMESPACE::ValidationCacheEXT() const VULKAN_HPP_NOEXCEPT 11607 { 11608 return m_validationCache; 11609 } 11610 clear()11611 void clear() VULKAN_HPP_NOEXCEPT 11612 { 11613 if ( m_validationCache ) 11614 { 11615 getDispatcher()->vkDestroyValidationCacheEXT( static_cast<VkDevice>( m_device ), 11616 static_cast<VkValidationCacheEXT>( m_validationCache ), 11617 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 11618 } 11619 m_device = nullptr; 11620 m_validationCache = nullptr; 11621 m_allocator = nullptr; 11622 m_dispatcher = nullptr; 11623 } 11624 release()11625 VULKAN_HPP_NAMESPACE::ValidationCacheEXT release() 11626 { 11627 m_device = nullptr; 11628 m_allocator = nullptr; 11629 m_dispatcher = nullptr; 11630 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_validationCache, nullptr ); 11631 } 11632 getDevice() const11633 VULKAN_HPP_NAMESPACE::Device getDevice() const 11634 { 11635 return m_device; 11636 } 11637 getDispatcher() const11638 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 11639 { 11640 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 11641 return m_dispatcher; 11642 } 11643 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT & rhs)11644 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT & rhs ) VULKAN_HPP_NOEXCEPT 11645 { 11646 std::swap( m_device, rhs.m_device ); 11647 std::swap( m_validationCache, rhs.m_validationCache ); 11648 std::swap( m_allocator, rhs.m_allocator ); 11649 std::swap( m_dispatcher, rhs.m_dispatcher ); 11650 } 11651 11652 //=== VK_EXT_validation_cache === 11653 11654 void merge( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches ) const; 11655 11656 VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const; 11657 11658 private: 11659 VULKAN_HPP_NAMESPACE::Device m_device = {}; 11660 VULKAN_HPP_NAMESPACE::ValidationCacheEXT m_validationCache = {}; 11661 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 11662 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 11663 }; 11664 11665 class VideoSessionKHR 11666 { 11667 public: 11668 using CType = VkVideoSessionKHR; 11669 using CppType = VULKAN_HPP_NAMESPACE::VideoSessionKHR; 11670 11671 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionKHR; 11672 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 11673 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 11674 11675 public: 11676 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)11677 VideoSessionKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11678 VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const & createInfo, 11679 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11680 { 11681 *this = device.createVideoSessionKHR( createInfo, allocator ); 11682 } 11683 # endif 11684 VideoSessionKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkVideoSessionKHR videoSession,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)11685 VideoSessionKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11686 VkVideoSessionKHR videoSession, 11687 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11688 : m_device( device ) 11689 , m_videoSession( videoSession ) 11690 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 11691 , m_dispatcher( device.getDispatcher() ) 11692 { 11693 } 11694 VideoSessionKHR(std::nullptr_t)11695 VideoSessionKHR( std::nullptr_t ) {} 11696 ~VideoSessionKHR()11697 ~VideoSessionKHR() 11698 { 11699 clear(); 11700 } 11701 11702 VideoSessionKHR() = delete; 11703 VideoSessionKHR( VideoSessionKHR const & ) = delete; 11704 VideoSessionKHR(VideoSessionKHR && rhs)11705 VideoSessionKHR( VideoSessionKHR && rhs ) VULKAN_HPP_NOEXCEPT 11706 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 11707 , m_videoSession( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSession, {} ) ) 11708 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 11709 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 11710 { 11711 } 11712 11713 VideoSessionKHR & operator=( VideoSessionKHR const & ) = delete; 11714 operator =(VideoSessionKHR && rhs)11715 VideoSessionKHR & operator=( VideoSessionKHR && rhs ) VULKAN_HPP_NOEXCEPT 11716 { 11717 if ( this != &rhs ) 11718 { 11719 std::swap( m_device, rhs.m_device ); 11720 std::swap( m_videoSession, rhs.m_videoSession ); 11721 std::swap( m_allocator, rhs.m_allocator ); 11722 std::swap( m_dispatcher, rhs.m_dispatcher ); 11723 } 11724 return *this; 11725 } 11726 operator *() const11727 VULKAN_HPP_NAMESPACE::VideoSessionKHR const & operator*() const VULKAN_HPP_NOEXCEPT 11728 { 11729 return m_videoSession; 11730 } 11731 operator VULKAN_HPP_NAMESPACE::VideoSessionKHR() const11732 operator VULKAN_HPP_NAMESPACE::VideoSessionKHR() const VULKAN_HPP_NOEXCEPT 11733 { 11734 return m_videoSession; 11735 } 11736 clear()11737 void clear() VULKAN_HPP_NOEXCEPT 11738 { 11739 if ( m_videoSession ) 11740 { 11741 getDispatcher()->vkDestroyVideoSessionKHR( static_cast<VkDevice>( m_device ), 11742 static_cast<VkVideoSessionKHR>( m_videoSession ), 11743 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 11744 } 11745 m_device = nullptr; 11746 m_videoSession = nullptr; 11747 m_allocator = nullptr; 11748 m_dispatcher = nullptr; 11749 } 11750 release()11751 VULKAN_HPP_NAMESPACE::VideoSessionKHR release() 11752 { 11753 m_device = nullptr; 11754 m_allocator = nullptr; 11755 m_dispatcher = nullptr; 11756 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_videoSession, nullptr ); 11757 } 11758 getDevice() const11759 VULKAN_HPP_NAMESPACE::Device getDevice() const 11760 { 11761 return m_device; 11762 } 11763 getDispatcher() const11764 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 11765 { 11766 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 11767 return m_dispatcher; 11768 } 11769 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR & rhs)11770 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR & rhs ) VULKAN_HPP_NOEXCEPT 11771 { 11772 std::swap( m_device, rhs.m_device ); 11773 std::swap( m_videoSession, rhs.m_videoSession ); 11774 std::swap( m_allocator, rhs.m_allocator ); 11775 std::swap( m_dispatcher, rhs.m_dispatcher ); 11776 } 11777 11778 //=== VK_KHR_video_queue === 11779 11780 VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR> getMemoryRequirements() const; 11781 11782 void bindMemory( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR> const & bindSessionMemoryInfos ) const; 11783 11784 private: 11785 VULKAN_HPP_NAMESPACE::Device m_device = {}; 11786 VULKAN_HPP_NAMESPACE::VideoSessionKHR m_videoSession = {}; 11787 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 11788 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 11789 }; 11790 11791 class VideoSessionParametersKHR 11792 { 11793 public: 11794 using CType = VkVideoSessionParametersKHR; 11795 using CppType = VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR; 11796 11797 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionParametersKHR; 11798 static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = 11799 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; 11800 11801 public: 11802 # if !defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 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)11803 VideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11804 VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const & createInfo, 11805 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11806 { 11807 *this = device.createVideoSessionParametersKHR( createInfo, allocator ); 11808 } 11809 # endif 11810 VideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device,VkVideoSessionParametersKHR videoSessionParameters,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator=nullptr)11811 VideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const & device, 11812 VkVideoSessionParametersKHR videoSessionParameters, 11813 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) 11814 : m_device( device ) 11815 , m_videoSessionParameters( videoSessionParameters ) 11816 , m_allocator( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) 11817 , m_dispatcher( device.getDispatcher() ) 11818 { 11819 } 11820 VideoSessionParametersKHR(std::nullptr_t)11821 VideoSessionParametersKHR( std::nullptr_t ) {} 11822 ~VideoSessionParametersKHR()11823 ~VideoSessionParametersKHR() 11824 { 11825 clear(); 11826 } 11827 11828 VideoSessionParametersKHR() = delete; 11829 VideoSessionParametersKHR( VideoSessionParametersKHR const & ) = delete; 11830 VideoSessionParametersKHR(VideoSessionParametersKHR && rhs)11831 VideoSessionParametersKHR( VideoSessionParametersKHR && rhs ) VULKAN_HPP_NOEXCEPT 11832 : m_device( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_device, {} ) ) 11833 , m_videoSessionParameters( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_videoSessionParameters, {} ) ) 11834 , m_allocator( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_allocator, {} ) ) 11835 , m_dispatcher( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( rhs.m_dispatcher, nullptr ) ) 11836 { 11837 } 11838 11839 VideoSessionParametersKHR & operator=( VideoSessionParametersKHR const & ) = delete; 11840 operator =(VideoSessionParametersKHR && rhs)11841 VideoSessionParametersKHR & operator=( VideoSessionParametersKHR && rhs ) VULKAN_HPP_NOEXCEPT 11842 { 11843 if ( this != &rhs ) 11844 { 11845 std::swap( m_device, rhs.m_device ); 11846 std::swap( m_videoSessionParameters, rhs.m_videoSessionParameters ); 11847 std::swap( m_allocator, rhs.m_allocator ); 11848 std::swap( m_dispatcher, rhs.m_dispatcher ); 11849 } 11850 return *this; 11851 } 11852 operator *() const11853 VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & operator*() const VULKAN_HPP_NOEXCEPT 11854 { 11855 return m_videoSessionParameters; 11856 } 11857 operator VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR() const11858 operator VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR() const VULKAN_HPP_NOEXCEPT 11859 { 11860 return m_videoSessionParameters; 11861 } 11862 clear()11863 void clear() VULKAN_HPP_NOEXCEPT 11864 { 11865 if ( m_videoSessionParameters ) 11866 { 11867 getDispatcher()->vkDestroyVideoSessionParametersKHR( static_cast<VkDevice>( m_device ), 11868 static_cast<VkVideoSessionParametersKHR>( m_videoSessionParameters ), 11869 reinterpret_cast<const VkAllocationCallbacks *>( m_allocator ) ); 11870 } 11871 m_device = nullptr; 11872 m_videoSessionParameters = nullptr; 11873 m_allocator = nullptr; 11874 m_dispatcher = nullptr; 11875 } 11876 release()11877 VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR release() 11878 { 11879 m_device = nullptr; 11880 m_allocator = nullptr; 11881 m_dispatcher = nullptr; 11882 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange( m_videoSessionParameters, nullptr ); 11883 } 11884 getDevice() const11885 VULKAN_HPP_NAMESPACE::Device getDevice() const 11886 { 11887 return m_device; 11888 } 11889 getDispatcher() const11890 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * getDispatcher() const 11891 { 11892 VULKAN_HPP_ASSERT( m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION ); 11893 return m_dispatcher; 11894 } 11895 swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR & rhs)11896 void swap( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR & rhs ) VULKAN_HPP_NOEXCEPT 11897 { 11898 std::swap( m_device, rhs.m_device ); 11899 std::swap( m_videoSessionParameters, rhs.m_videoSessionParameters ); 11900 std::swap( m_allocator, rhs.m_allocator ); 11901 std::swap( m_dispatcher, rhs.m_dispatcher ); 11902 } 11903 11904 //=== VK_KHR_video_queue === 11905 11906 void update( const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo ) const; 11907 11908 private: 11909 VULKAN_HPP_NAMESPACE::Device m_device = {}; 11910 VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR m_videoSessionParameters = {}; 11911 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * m_allocator = {}; 11912 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const * m_dispatcher = nullptr; 11913 }; 11914 11915 //=========================== 11916 //=== COMMAND Definitions === 11917 //=========================== 11918 11919 //=== VK_VERSION_1_0 === 11920 11921 VULKAN_HPP_NODISCARD 11922 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance>::Type createInstance(VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const11923 Context::createInstance( VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & createInfo, 11924 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 11925 { 11926 VULKAN_HPP_NAMESPACE::Instance instance; 11927 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateInstance( 11928 reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ), 11929 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 11930 reinterpret_cast<VkInstance *>( &instance ) ) ); 11931 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 11932 { 11933 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11934 return VULKAN_HPP_UNEXPECTED( result ); 11935 # else 11936 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Context::createInstance" ); 11937 # endif 11938 } 11939 11940 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance( *this, *reinterpret_cast<VkInstance *>( &instance ), allocator ); 11941 } 11942 11943 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 11944 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice>>::Type enumeratePhysicalDevices() const11945 Instance::enumeratePhysicalDevices() const 11946 { 11947 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice> physicalDevices; 11948 uint32_t physicalDeviceCount; 11949 VULKAN_HPP_NAMESPACE::Result result; 11950 do 11951 { 11952 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 11953 getDispatcher()->vkEnumeratePhysicalDevices( static_cast<VkInstance>( m_instance ), &physicalDeviceCount, nullptr ) ); 11954 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount ) 11955 { 11956 physicalDevices.resize( physicalDeviceCount ); 11957 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDevices( 11958 static_cast<VkInstance>( m_instance ), &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) ); 11959 } 11960 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 11961 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eIncomplete ) ) 11962 { 11963 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 11964 return VULKAN_HPP_UNEXPECTED( result ); 11965 # else 11966 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::enumeratePhysicalDevices" ); 11967 # endif 11968 } 11969 11970 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> physicalDevicesRAII; 11971 physicalDevicesRAII.reserve( physicalDevices.size() ); 11972 for ( auto & physicalDevice : physicalDevices ) 11973 { 11974 physicalDevicesRAII.emplace_back( *this, *reinterpret_cast<VkPhysicalDevice *>( &physicalDevice ) ); 11975 } 11976 return physicalDevicesRAII; 11977 } 11978 getFeatures() const11979 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures() const VULKAN_HPP_NOEXCEPT 11980 { 11981 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures && "Function <vkGetPhysicalDeviceFeatures> requires <VK_VERSION_1_0>" ); 11982 11983 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features; 11984 getDispatcher()->vkGetPhysicalDeviceFeatures( static_cast<VkPhysicalDevice>( m_physicalDevice ), 11985 reinterpret_cast<VkPhysicalDeviceFeatures *>( &features ) ); 11986 11987 return features; 11988 } 11989 11990 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties(VULKAN_HPP_NAMESPACE::Format format) const11991 PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 11992 { 11993 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties && "Function <vkGetPhysicalDeviceFormatProperties> requires <VK_VERSION_1_0>" ); 11994 11995 VULKAN_HPP_NAMESPACE::FormatProperties formatProperties; 11996 getDispatcher()->vkGetPhysicalDeviceFormatProperties( 11997 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties *>( &formatProperties ) ); 11998 11999 return formatProperties; 12000 } 12001 12002 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) const12003 PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, 12004 VULKAN_HPP_NAMESPACE::ImageType type, 12005 VULKAN_HPP_NAMESPACE::ImageTiling tiling, 12006 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 12007 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags ) const 12008 { 12009 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties && 12010 "Function <vkGetPhysicalDeviceImageFormatProperties> requires <VK_VERSION_1_0>" ); 12011 12012 VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties; 12013 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12014 getDispatcher()->vkGetPhysicalDeviceImageFormatProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12015 static_cast<VkFormat>( format ), 12016 static_cast<VkImageType>( type ), 12017 static_cast<VkImageTiling>( tiling ), 12018 static_cast<VkImageUsageFlags>( usage ), 12019 static_cast<VkImageCreateFlags>( flags ), 12020 reinterpret_cast<VkImageFormatProperties *>( &imageFormatProperties ) ) ); 12021 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" ); 12022 12023 return imageFormatProperties; 12024 } 12025 getProperties() const12026 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties() const VULKAN_HPP_NOEXCEPT 12027 { 12028 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties && "Function <vkGetPhysicalDeviceProperties> requires <VK_VERSION_1_0>" ); 12029 12030 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties; 12031 getDispatcher()->vkGetPhysicalDeviceProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12032 reinterpret_cast<VkPhysicalDeviceProperties *>( &properties ) ); 12033 12034 return properties; 12035 } 12036 getQueueFamilyProperties() const12037 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> PhysicalDevice::getQueueFamilyProperties() const 12038 { 12039 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties && 12040 "Function <vkGetPhysicalDeviceQueueFamilyProperties> requires <VK_VERSION_1_0>" ); 12041 12042 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> queueFamilyProperties; 12043 uint32_t queueFamilyPropertyCount; 12044 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 12045 queueFamilyProperties.resize( queueFamilyPropertyCount ); 12046 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12047 &queueFamilyPropertyCount, 12048 reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) ); 12049 12050 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 12051 if ( queueFamilyPropertyCount < queueFamilyProperties.size() ) 12052 { 12053 queueFamilyProperties.resize( queueFamilyPropertyCount ); 12054 } 12055 return queueFamilyProperties; 12056 } 12057 getMemoryProperties() const12058 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties() const VULKAN_HPP_NOEXCEPT 12059 { 12060 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties && "Function <vkGetPhysicalDeviceMemoryProperties> requires <VK_VERSION_1_0>" ); 12061 12062 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties; 12063 getDispatcher()->vkGetPhysicalDeviceMemoryProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12064 reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( &memoryProperties ) ); 12065 12066 return memoryProperties; 12067 } 12068 getProcAddr(const std::string & name) const12069 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT 12070 { 12071 VULKAN_HPP_ASSERT( getDispatcher()->vkGetInstanceProcAddr && "Function <vkGetInstanceProcAddr> requires <VK_VERSION_1_0>" ); 12072 12073 PFN_vkVoidFunction result = getDispatcher()->vkGetInstanceProcAddr( static_cast<VkInstance>( m_instance ), name.c_str() ); 12074 12075 return result; 12076 } 12077 getProcAddr(const std::string & name) const12078 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name ) const VULKAN_HPP_NOEXCEPT 12079 { 12080 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceProcAddr && "Function <vkGetDeviceProcAddr> requires <VK_VERSION_1_0>" ); 12081 12082 PFN_vkVoidFunction result = getDispatcher()->vkGetDeviceProcAddr( static_cast<VkDevice>( m_device ), name.c_str() ); 12083 12084 return result; 12085 } 12086 12087 VULKAN_HPP_NODISCARD 12088 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device>::Type createDevice(VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12089 PhysicalDevice::createDevice( VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & createInfo, 12090 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 12091 VULKAN_HPP_RAII_CREATE_NOEXCEPT 12092 { 12093 VULKAN_HPP_NAMESPACE::Device device; 12094 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDevice( 12095 static_cast<VkPhysicalDevice>( m_physicalDevice ), 12096 reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ), 12097 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12098 reinterpret_cast<VkDevice *>( &device ) ) ); 12099 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12100 { 12101 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12102 return VULKAN_HPP_UNEXPECTED( result ); 12103 # else 12104 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::createDevice" ); 12105 # endif 12106 } 12107 12108 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device( *this, *reinterpret_cast<VkDevice *>( &device ), allocator ); 12109 } 12110 12111 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> enumerateInstanceExtensionProperties(Optional<const std::string> layerName) const12112 Context::enumerateInstanceExtensionProperties( Optional<const std::string> layerName ) const 12113 { 12114 VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceExtensionProperties && 12115 "Function <vkEnumerateInstanceExtensionProperties> requires <VK_VERSION_1_0>" ); 12116 12117 std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> properties; 12118 uint32_t propertyCount; 12119 VULKAN_HPP_NAMESPACE::Result result; 12120 do 12121 { 12122 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12123 getDispatcher()->vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); 12124 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 12125 { 12126 properties.resize( propertyCount ); 12127 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceExtensionProperties( 12128 layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) ); 12129 } 12130 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 12131 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceExtensionProperties" ); 12132 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 12133 if ( propertyCount < properties.size() ) 12134 { 12135 properties.resize( propertyCount ); 12136 } 12137 return properties; 12138 } 12139 12140 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> enumerateDeviceExtensionProperties(Optional<const std::string> layerName) const12141 PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName ) const 12142 { 12143 VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateDeviceExtensionProperties && "Function <vkEnumerateDeviceExtensionProperties> requires <VK_VERSION_1_0>" ); 12144 12145 std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> properties; 12146 uint32_t propertyCount; 12147 VULKAN_HPP_NAMESPACE::Result result; 12148 do 12149 { 12150 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateDeviceExtensionProperties( 12151 static_cast<VkPhysicalDevice>( m_physicalDevice ), layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); 12152 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 12153 { 12154 properties.resize( propertyCount ); 12155 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12156 getDispatcher()->vkEnumerateDeviceExtensionProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12157 layerName ? layerName->c_str() : nullptr, 12158 &propertyCount, 12159 reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) ); 12160 } 12161 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 12162 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" ); 12163 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 12164 if ( propertyCount < properties.size() ) 12165 { 12166 properties.resize( propertyCount ); 12167 } 12168 return properties; 12169 } 12170 enumerateInstanceLayerProperties() const12171 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> Context::enumerateInstanceLayerProperties() const 12172 { 12173 VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceLayerProperties && "Function <vkEnumerateInstanceLayerProperties> requires <VK_VERSION_1_0>" ); 12174 12175 std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> properties; 12176 uint32_t propertyCount; 12177 VULKAN_HPP_NAMESPACE::Result result; 12178 do 12179 { 12180 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); 12181 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 12182 { 12183 properties.resize( propertyCount ); 12184 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12185 getDispatcher()->vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) ); 12186 } 12187 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 12188 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceLayerProperties" ); 12189 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 12190 if ( propertyCount < properties.size() ) 12191 { 12192 properties.resize( propertyCount ); 12193 } 12194 return properties; 12195 } 12196 enumerateDeviceLayerProperties() const12197 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> PhysicalDevice::enumerateDeviceLayerProperties() const 12198 { 12199 VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateDeviceLayerProperties && "Function <vkEnumerateDeviceLayerProperties> requires <VK_VERSION_1_0>" ); 12200 12201 std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> properties; 12202 uint32_t propertyCount; 12203 VULKAN_HPP_NAMESPACE::Result result; 12204 do 12205 { 12206 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12207 getDispatcher()->vkEnumerateDeviceLayerProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 12208 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 12209 { 12210 properties.resize( propertyCount ); 12211 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateDeviceLayerProperties( 12212 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) ); 12213 } 12214 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 12215 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" ); 12216 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 12217 if ( propertyCount < properties.size() ) 12218 { 12219 properties.resize( propertyCount ); 12220 } 12221 return properties; 12222 } 12223 12224 VULKAN_HPP_NODISCARD 12225 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue>::Type getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex) const12226 Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12227 { 12228 VULKAN_HPP_NAMESPACE::Queue queue; 12229 getDispatcher()->vkGetDeviceQueue( static_cast<VkDevice>( m_device ), queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( &queue ) ); 12230 12231 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue( *this, *reinterpret_cast<VkQueue *>( &queue ) ); 12232 } 12233 submit(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,VULKAN_HPP_NAMESPACE::Fence fence) const12234 VULKAN_HPP_INLINE void Queue::submit( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits, 12235 VULKAN_HPP_NAMESPACE::Fence fence ) const 12236 { 12237 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit && "Function <vkQueueSubmit> requires <VK_VERSION_1_0>" ); 12238 12239 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSubmit( 12240 static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) ) ); 12241 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" ); 12242 } 12243 waitIdle() const12244 VULKAN_HPP_INLINE void Queue::waitIdle() const 12245 { 12246 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueWaitIdle && "Function <vkQueueWaitIdle> requires <VK_VERSION_1_0>" ); 12247 12248 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueWaitIdle( static_cast<VkQueue>( m_queue ) ) ); 12249 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" ); 12250 } 12251 waitIdle() const12252 VULKAN_HPP_INLINE void Device::waitIdle() const 12253 { 12254 VULKAN_HPP_ASSERT( getDispatcher()->vkDeviceWaitIdle && "Function <vkDeviceWaitIdle> requires <VK_VERSION_1_0>" ); 12255 12256 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDeviceWaitIdle( static_cast<VkDevice>( m_device ) ) ); 12257 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" ); 12258 } 12259 12260 VULKAN_HPP_NODISCARD 12261 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory>::Type allocateMemory(VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & allocateInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12262 Device::allocateMemory( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & allocateInfo, 12263 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12264 { 12265 VULKAN_HPP_NAMESPACE::DeviceMemory memory; 12266 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAllocateMemory( 12267 static_cast<VkDevice>( m_device ), 12268 reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ), 12269 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12270 reinterpret_cast<VkDeviceMemory *>( &memory ) ) ); 12271 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12272 { 12273 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12274 return VULKAN_HPP_UNEXPECTED( result ); 12275 # else 12276 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateMemory" ); 12277 # endif 12278 } 12279 12280 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory( *this, *reinterpret_cast<VkDeviceMemory *>( &memory ), allocator ); 12281 } 12282 mapMemory(VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::MemoryMapFlags flags) const12283 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * DeviceMemory::mapMemory( VULKAN_HPP_NAMESPACE::DeviceSize offset, 12284 VULKAN_HPP_NAMESPACE::DeviceSize size, 12285 VULKAN_HPP_NAMESPACE::MemoryMapFlags flags ) const 12286 { 12287 VULKAN_HPP_ASSERT( getDispatcher()->vkMapMemory && "Function <vkMapMemory> requires <VK_VERSION_1_0>" ); 12288 12289 void * pData; 12290 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkMapMemory( static_cast<VkDevice>( m_device ), 12291 static_cast<VkDeviceMemory>( m_memory ), 12292 static_cast<VkDeviceSize>( offset ), 12293 static_cast<VkDeviceSize>( size ), 12294 static_cast<VkMemoryMapFlags>( flags ), 12295 &pData ) ); 12296 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::mapMemory" ); 12297 12298 return pData; 12299 } 12300 unmapMemory() const12301 VULKAN_HPP_INLINE void DeviceMemory::unmapMemory() const VULKAN_HPP_NOEXCEPT 12302 { 12303 VULKAN_HPP_ASSERT( getDispatcher()->vkUnmapMemory && "Function <vkUnmapMemory> requires <VK_VERSION_1_0>" ); 12304 12305 getDispatcher()->vkUnmapMemory( static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ) ); 12306 } 12307 12308 VULKAN_HPP_INLINE void flushMappedMemoryRanges(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges) const12309 Device::flushMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const 12310 { 12311 VULKAN_HPP_ASSERT( getDispatcher()->vkFlushMappedMemoryRanges && "Function <vkFlushMappedMemoryRanges> requires <VK_VERSION_1_0>" ); 12312 12313 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkFlushMappedMemoryRanges( 12314 static_cast<VkDevice>( m_device ), memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) ); 12315 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" ); 12316 } 12317 12318 VULKAN_HPP_INLINE void invalidateMappedMemoryRanges(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges) const12319 Device::invalidateMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges ) const 12320 { 12321 VULKAN_HPP_ASSERT( getDispatcher()->vkInvalidateMappedMemoryRanges && "Function <vkInvalidateMappedMemoryRanges> requires <VK_VERSION_1_0>" ); 12322 12323 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkInvalidateMappedMemoryRanges( 12324 static_cast<VkDevice>( m_device ), memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) ); 12325 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" ); 12326 } 12327 getCommitment() const12328 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize DeviceMemory::getCommitment() const VULKAN_HPP_NOEXCEPT 12329 { 12330 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceMemoryCommitment && "Function <vkGetDeviceMemoryCommitment> requires <VK_VERSION_1_0>" ); 12331 12332 VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes; 12333 getDispatcher()->vkGetDeviceMemoryCommitment( 12334 static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ), reinterpret_cast<VkDeviceSize *>( &committedMemoryInBytes ) ); 12335 12336 return committedMemoryInBytes; 12337 } 12338 bindMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset) const12339 VULKAN_HPP_INLINE void Buffer::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const 12340 { 12341 VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory && "Function <vkBindBufferMemory> requires <VK_VERSION_1_0>" ); 12342 12343 VULKAN_HPP_NAMESPACE::Result result = 12344 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindBufferMemory( static_cast<VkDevice>( m_device ), 12345 static_cast<VkBuffer>( m_buffer ), 12346 static_cast<VkDeviceMemory>( memory ), 12347 static_cast<VkDeviceSize>( memoryOffset ) ) ); 12348 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Buffer::bindMemory" ); 12349 } 12350 bindMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset) const12351 VULKAN_HPP_INLINE void Image::bindMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset ) const 12352 { 12353 VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory && "Function <vkBindImageMemory> requires <VK_VERSION_1_0>" ); 12354 12355 VULKAN_HPP_NAMESPACE::Result result = 12356 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindImageMemory( static_cast<VkDevice>( m_device ), 12357 static_cast<VkImage>( m_image ), 12358 static_cast<VkDeviceMemory>( memory ), 12359 static_cast<VkDeviceSize>( memoryOffset ) ) ); 12360 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Image::bindMemory" ); 12361 } 12362 getMemoryRequirements() const12363 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Buffer::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT 12364 { 12365 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements && "Function <vkGetBufferMemoryRequirements> requires <VK_VERSION_1_0>" ); 12366 12367 VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; 12368 getDispatcher()->vkGetBufferMemoryRequirements( 12369 static_cast<VkDevice>( m_device ), static_cast<VkBuffer>( m_buffer ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) ); 12370 12371 return memoryRequirements; 12372 } 12373 getMemoryRequirements() const12374 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Image::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT 12375 { 12376 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements && "Function <vkGetImageMemoryRequirements> requires <VK_VERSION_1_0>" ); 12377 12378 VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; 12379 getDispatcher()->vkGetImageMemoryRequirements( 12380 static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) ); 12381 12382 return memoryRequirements; 12383 } 12384 getSparseMemoryRequirements() const12385 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> Image::getSparseMemoryRequirements() const 12386 { 12387 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSparseMemoryRequirements && "Function <vkGetImageSparseMemoryRequirements> requires <VK_VERSION_1_0>" ); 12388 12389 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> sparseMemoryRequirements; 12390 uint32_t sparseMemoryRequirementCount; 12391 getDispatcher()->vkGetImageSparseMemoryRequirements( 12392 static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), &sparseMemoryRequirementCount, nullptr ); 12393 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 12394 getDispatcher()->vkGetImageSparseMemoryRequirements( static_cast<VkDevice>( m_device ), 12395 static_cast<VkImage>( m_image ), 12396 &sparseMemoryRequirementCount, 12397 reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) ); 12398 12399 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 12400 if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() ) 12401 { 12402 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 12403 } 12404 return sparseMemoryRequirements; 12405 } 12406 12407 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) const12408 PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, 12409 VULKAN_HPP_NAMESPACE::ImageType type, 12410 VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, 12411 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 12412 VULKAN_HPP_NAMESPACE::ImageTiling tiling ) const 12413 { 12414 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties && 12415 "Function <vkGetPhysicalDeviceSparseImageFormatProperties> requires <VK_VERSION_1_0>" ); 12416 12417 std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties> properties; 12418 uint32_t propertyCount; 12419 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12420 static_cast<VkFormat>( format ), 12421 static_cast<VkImageType>( type ), 12422 static_cast<VkSampleCountFlagBits>( samples ), 12423 static_cast<VkImageUsageFlags>( usage ), 12424 static_cast<VkImageTiling>( tiling ), 12425 &propertyCount, 12426 nullptr ); 12427 properties.resize( propertyCount ); 12428 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 12429 static_cast<VkFormat>( format ), 12430 static_cast<VkImageType>( type ), 12431 static_cast<VkSampleCountFlagBits>( samples ), 12432 static_cast<VkImageUsageFlags>( usage ), 12433 static_cast<VkImageTiling>( tiling ), 12434 &propertyCount, 12435 reinterpret_cast<VkSparseImageFormatProperties *>( properties.data() ) ); 12436 12437 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 12438 if ( propertyCount < properties.size() ) 12439 { 12440 properties.resize( propertyCount ); 12441 } 12442 return properties; 12443 } 12444 bindSparse(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo,VULKAN_HPP_NAMESPACE::Fence fence) const12445 VULKAN_HPP_INLINE void Queue::bindSparse( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo, 12446 VULKAN_HPP_NAMESPACE::Fence fence ) const 12447 { 12448 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBindSparse && "Function <vkQueueBindSparse> requires <VK_VERSION_1_0>" ); 12449 12450 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueBindSparse( 12451 static_cast<VkQueue>( m_queue ), bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) ) ); 12452 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" ); 12453 } 12454 12455 VULKAN_HPP_NODISCARD 12456 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type createFence(VULKAN_HPP_NAMESPACE::FenceCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12457 Device::createFence( VULKAN_HPP_NAMESPACE::FenceCreateInfo const & createInfo, 12458 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12459 { 12460 VULKAN_HPP_NAMESPACE::Fence fence; 12461 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateFence( 12462 static_cast<VkDevice>( m_device ), 12463 reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ), 12464 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12465 reinterpret_cast<VkFence *>( &fence ) ) ); 12466 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12467 { 12468 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12469 return VULKAN_HPP_UNEXPECTED( result ); 12470 # else 12471 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createFence" ); 12472 # endif 12473 } 12474 12475 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence( *this, *reinterpret_cast<VkFence *>( &fence ), allocator ); 12476 } 12477 resetFences(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences) const12478 VULKAN_HPP_INLINE void Device::resetFences( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences ) const 12479 { 12480 VULKAN_HPP_ASSERT( getDispatcher()->vkResetFences && "Function <vkResetFences> requires <VK_VERSION_1_0>" ); 12481 12482 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12483 getDispatcher()->vkResetFences( static_cast<VkDevice>( m_device ), fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) ); 12484 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" ); 12485 } 12486 getStatus() const12487 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Fence::getStatus() const 12488 { 12489 VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceStatus && "Function <vkGetFenceStatus> requires <VK_VERSION_1_0>" ); 12490 12491 VULKAN_HPP_NAMESPACE::Result result = 12492 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetFenceStatus( static_cast<VkDevice>( m_device ), static_cast<VkFence>( m_fence ) ) ); 12493 VULKAN_HPP_NAMESPACE::detail::resultCheck( 12494 result, VULKAN_HPP_NAMESPACE_STRING "::Fence::getStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); 12495 12496 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 12497 } 12498 waitForFences(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout) const12499 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitForFences( 12500 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout ) const 12501 { 12502 VULKAN_HPP_ASSERT( getDispatcher()->vkWaitForFences && "Function <vkWaitForFences> requires <VK_VERSION_1_0>" ); 12503 12504 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWaitForFences( 12505 static_cast<VkDevice>( m_device ), fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) ); 12506 VULKAN_HPP_NAMESPACE::detail::resultCheck( 12507 result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); 12508 12509 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 12510 } 12511 12512 VULKAN_HPP_NODISCARD 12513 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore>::Type createSemaphore(VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12514 Device::createSemaphore( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & createInfo, 12515 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12516 { 12517 VULKAN_HPP_NAMESPACE::Semaphore semaphore; 12518 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSemaphore( 12519 static_cast<VkDevice>( m_device ), 12520 reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ), 12521 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12522 reinterpret_cast<VkSemaphore *>( &semaphore ) ) ); 12523 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12524 { 12525 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12526 return VULKAN_HPP_UNEXPECTED( result ); 12527 # else 12528 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSemaphore" ); 12529 # endif 12530 } 12531 12532 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore( *this, *reinterpret_cast<VkSemaphore *>( &semaphore ), allocator ); 12533 } 12534 12535 VULKAN_HPP_NODISCARD 12536 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event>::Type createEvent(VULKAN_HPP_NAMESPACE::EventCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12537 Device::createEvent( VULKAN_HPP_NAMESPACE::EventCreateInfo const & createInfo, 12538 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12539 { 12540 VULKAN_HPP_NAMESPACE::Event event; 12541 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateEvent( 12542 static_cast<VkDevice>( m_device ), 12543 reinterpret_cast<const VkEventCreateInfo *>( &createInfo ), 12544 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12545 reinterpret_cast<VkEvent *>( &event ) ) ); 12546 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12547 { 12548 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12549 return VULKAN_HPP_UNEXPECTED( result ); 12550 # else 12551 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createEvent" ); 12552 # endif 12553 } 12554 12555 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event( *this, *reinterpret_cast<VkEvent *>( &event ), allocator ); 12556 } 12557 getStatus() const12558 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Event::getStatus() const 12559 { 12560 VULKAN_HPP_ASSERT( getDispatcher()->vkGetEventStatus && "Function <vkGetEventStatus> requires <VK_VERSION_1_0>" ); 12561 12562 VULKAN_HPP_NAMESPACE::Result result = 12563 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEventStatus( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) ); 12564 VULKAN_HPP_NAMESPACE::detail::resultCheck( 12565 result, VULKAN_HPP_NAMESPACE_STRING "::Event::getStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } ); 12566 12567 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 12568 } 12569 set() const12570 VULKAN_HPP_INLINE void Event::set() const 12571 { 12572 VULKAN_HPP_ASSERT( getDispatcher()->vkSetEvent && "Function <vkSetEvent> requires <VK_VERSION_1_0>" ); 12573 12574 VULKAN_HPP_NAMESPACE::Result result = 12575 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) ); 12576 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Event::set" ); 12577 } 12578 reset() const12579 VULKAN_HPP_INLINE void Event::reset() const 12580 { 12581 VULKAN_HPP_ASSERT( getDispatcher()->vkResetEvent && "Function <vkResetEvent> requires <VK_VERSION_1_0>" ); 12582 12583 VULKAN_HPP_NAMESPACE::Result result = 12584 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkResetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( m_event ) ) ); 12585 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Event::reset" ); 12586 } 12587 12588 VULKAN_HPP_NODISCARD 12589 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool>::Type createQueryPool(VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12590 Device::createQueryPool( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & createInfo, 12591 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12592 { 12593 VULKAN_HPP_NAMESPACE::QueryPool queryPool; 12594 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateQueryPool( 12595 static_cast<VkDevice>( m_device ), 12596 reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ), 12597 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12598 reinterpret_cast<VkQueryPool *>( &queryPool ) ) ); 12599 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12600 { 12601 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12602 return VULKAN_HPP_UNEXPECTED( result ); 12603 # else 12604 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createQueryPool" ); 12605 # endif 12606 } 12607 12608 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool( *this, *reinterpret_cast<VkQueryPool *>( &queryPool ), allocator ); 12609 } 12610 12611 template <typename DataType> getResults(uint32_t firstQuery,uint32_t queryCount,size_t dataSize,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags) const12612 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, std::vector<DataType>> QueryPool::getResults( 12613 uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const 12614 { 12615 VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueryPoolResults && "Function <vkGetQueryPoolResults> requires <VK_VERSION_1_0>" ); 12616 12617 VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 ); 12618 std::vector<DataType> data( dataSize / sizeof( DataType ) ); 12619 VULKAN_HPP_NAMESPACE::Result result = 12620 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetQueryPoolResults( static_cast<VkDevice>( m_device ), 12621 static_cast<VkQueryPool>( m_queryPool ), 12622 firstQuery, 12623 queryCount, 12624 data.size() * sizeof( DataType ), 12625 reinterpret_cast<void *>( data.data() ), 12626 static_cast<VkDeviceSize>( stride ), 12627 static_cast<VkQueryResultFlags>( flags ) ) ); 12628 VULKAN_HPP_NAMESPACE::detail::resultCheck( 12629 result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResults", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); 12630 12631 return std::make_pair( result, std::move( data ) ); 12632 } 12633 12634 template <typename DataType> getResult(uint32_t firstQuery,uint32_t queryCount,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags) const12635 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, DataType> QueryPool::getResult( 12636 uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const 12637 { 12638 VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueryPoolResults && "Function <vkGetQueryPoolResults> requires <VK_VERSION_1_0>" ); 12639 12640 DataType data; 12641 VULKAN_HPP_NAMESPACE::Result result = 12642 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetQueryPoolResults( static_cast<VkDevice>( m_device ), 12643 static_cast<VkQueryPool>( m_queryPool ), 12644 firstQuery, 12645 queryCount, 12646 sizeof( DataType ), 12647 reinterpret_cast<void *>( &data ), 12648 static_cast<VkDeviceSize>( stride ), 12649 static_cast<VkQueryResultFlags>( flags ) ) ); 12650 VULKAN_HPP_NAMESPACE::detail::resultCheck( 12651 result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); 12652 12653 return std::make_pair( result, std::move( data ) ); 12654 } 12655 12656 VULKAN_HPP_NODISCARD 12657 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer>::Type createBuffer(VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12658 Device::createBuffer( VULKAN_HPP_NAMESPACE::BufferCreateInfo const & createInfo, 12659 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12660 { 12661 VULKAN_HPP_NAMESPACE::Buffer buffer; 12662 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateBuffer( 12663 static_cast<VkDevice>( m_device ), 12664 reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ), 12665 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12666 reinterpret_cast<VkBuffer *>( &buffer ) ) ); 12667 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12668 { 12669 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12670 return VULKAN_HPP_UNEXPECTED( result ); 12671 # else 12672 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBuffer" ); 12673 # endif 12674 } 12675 12676 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer( *this, *reinterpret_cast<VkBuffer *>( &buffer ), allocator ); 12677 } 12678 12679 VULKAN_HPP_NODISCARD 12680 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView>::Type createBufferView(VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12681 Device::createBufferView( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & createInfo, 12682 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 12683 VULKAN_HPP_RAII_CREATE_NOEXCEPT 12684 { 12685 VULKAN_HPP_NAMESPACE::BufferView view; 12686 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateBufferView( 12687 static_cast<VkDevice>( m_device ), 12688 reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ), 12689 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12690 reinterpret_cast<VkBufferView *>( &view ) ) ); 12691 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12692 { 12693 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12694 return VULKAN_HPP_UNEXPECTED( result ); 12695 # else 12696 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBufferView" ); 12697 # endif 12698 } 12699 12700 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView( *this, *reinterpret_cast<VkBufferView *>( &view ), allocator ); 12701 } 12702 12703 VULKAN_HPP_NODISCARD 12704 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image>::Type createImage(VULKAN_HPP_NAMESPACE::ImageCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12705 Device::createImage( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & createInfo, 12706 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12707 { 12708 VULKAN_HPP_NAMESPACE::Image image; 12709 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateImage( 12710 static_cast<VkDevice>( m_device ), 12711 reinterpret_cast<const VkImageCreateInfo *>( &createInfo ), 12712 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12713 reinterpret_cast<VkImage *>( &image ) ) ); 12714 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12715 { 12716 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12717 return VULKAN_HPP_UNEXPECTED( result ); 12718 # else 12719 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createImage" ); 12720 # endif 12721 } 12722 12723 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image( *this, *reinterpret_cast<VkImage *>( &image ), allocator ); 12724 } 12725 12726 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout getSubresourceLayout(const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource) const12727 Image::getSubresourceLayout( const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource ) const VULKAN_HPP_NOEXCEPT 12728 { 12729 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSubresourceLayout && "Function <vkGetImageSubresourceLayout> requires <VK_VERSION_1_0>" ); 12730 12731 VULKAN_HPP_NAMESPACE::SubresourceLayout layout; 12732 getDispatcher()->vkGetImageSubresourceLayout( static_cast<VkDevice>( m_device ), 12733 static_cast<VkImage>( m_image ), 12734 reinterpret_cast<const VkImageSubresource *>( &subresource ), 12735 reinterpret_cast<VkSubresourceLayout *>( &layout ) ); 12736 12737 return layout; 12738 } 12739 12740 VULKAN_HPP_NODISCARD 12741 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView>::Type createImageView(VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12742 Device::createImageView( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & createInfo, 12743 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12744 { 12745 VULKAN_HPP_NAMESPACE::ImageView view; 12746 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateImageView( 12747 static_cast<VkDevice>( m_device ), 12748 reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ), 12749 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12750 reinterpret_cast<VkImageView *>( &view ) ) ); 12751 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12752 { 12753 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12754 return VULKAN_HPP_UNEXPECTED( result ); 12755 # else 12756 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createImageView" ); 12757 # endif 12758 } 12759 12760 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView( *this, *reinterpret_cast<VkImageView *>( &view ), allocator ); 12761 } 12762 12763 VULKAN_HPP_NODISCARD 12764 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule>::Type createShaderModule(VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12765 Device::createShaderModule( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & createInfo, 12766 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 12767 VULKAN_HPP_RAII_CREATE_NOEXCEPT 12768 { 12769 VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; 12770 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateShaderModule( 12771 static_cast<VkDevice>( m_device ), 12772 reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ), 12773 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12774 reinterpret_cast<VkShaderModule *>( &shaderModule ) ) ); 12775 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12776 { 12777 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12778 return VULKAN_HPP_UNEXPECTED( result ); 12779 # else 12780 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShaderModule" ); 12781 # endif 12782 } 12783 12784 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule( *this, *reinterpret_cast<VkShaderModule *>( &shaderModule ), allocator ); 12785 } 12786 12787 VULKAN_HPP_NODISCARD 12788 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache>::Type createPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12789 Device::createPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & createInfo, 12790 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 12791 VULKAN_HPP_RAII_CREATE_NOEXCEPT 12792 { 12793 VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; 12794 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePipelineCache( 12795 static_cast<VkDevice>( m_device ), 12796 reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ), 12797 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12798 reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) ); 12799 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12800 { 12801 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12802 return VULKAN_HPP_UNEXPECTED( result ); 12803 # else 12804 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPipelineCache" ); 12805 # endif 12806 } 12807 12808 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache( *this, *reinterpret_cast<VkPipelineCache *>( &pipelineCache ), allocator ); 12809 } 12810 getData() const12811 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> PipelineCache::getData() const 12812 { 12813 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineCacheData && "Function <vkGetPipelineCacheData> requires <VK_VERSION_1_0>" ); 12814 12815 std::vector<uint8_t> data; 12816 size_t dataSize; 12817 VULKAN_HPP_NAMESPACE::Result result; 12818 do 12819 { 12820 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 12821 getDispatcher()->vkGetPipelineCacheData( static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( m_pipelineCache ), &dataSize, nullptr ) ); 12822 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) 12823 { 12824 data.resize( dataSize ); 12825 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineCacheData( 12826 static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( m_pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) ); 12827 } 12828 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 12829 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::getData" ); 12830 VULKAN_HPP_ASSERT( dataSize <= data.size() ); 12831 if ( dataSize < data.size() ) 12832 { 12833 data.resize( dataSize ); 12834 } 12835 return data; 12836 } 12837 merge(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches) const12838 VULKAN_HPP_INLINE void PipelineCache::merge( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches ) const 12839 { 12840 VULKAN_HPP_ASSERT( getDispatcher()->vkMergePipelineCaches && "Function <vkMergePipelineCaches> requires <VK_VERSION_1_0>" ); 12841 12842 VULKAN_HPP_NAMESPACE::Result result = 12843 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkMergePipelineCaches( static_cast<VkDevice>( m_device ), 12844 static_cast<VkPipelineCache>( m_pipelineCache ), 12845 srcCaches.size(), 12846 reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) ); 12847 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::merge" ); 12848 } 12849 12850 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 12851 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type createGraphicsPipelines(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) const12852 Device::createGraphicsPipelines( 12853 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 12854 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos, 12855 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 12856 { 12857 std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() ); 12858 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateGraphicsPipelines( 12859 static_cast<VkDevice>( m_device ), 12860 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 12861 createInfos.size(), 12862 reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ), 12863 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12864 reinterpret_cast<VkPipeline *>( pipelines.data() ) ) ); 12865 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 12866 { 12867 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12868 return VULKAN_HPP_UNEXPECTED( result ); 12869 # else 12870 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createGraphicsPipelines" ); 12871 # endif 12872 } 12873 12874 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII; 12875 pipelinesRAII.reserve( pipelines.size() ); 12876 for ( auto & pipeline : pipelines ) 12877 { 12878 pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 12879 } 12880 return pipelinesRAII; 12881 } 12882 12883 VULKAN_HPP_NODISCARD 12884 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type createGraphicsPipeline(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) const12885 Device::createGraphicsPipeline( 12886 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 12887 VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & createInfo, 12888 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12889 { 12890 VULKAN_HPP_NAMESPACE::Pipeline pipeline; 12891 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateGraphicsPipelines( 12892 static_cast<VkDevice>( m_device ), 12893 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 12894 1, 12895 reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ), 12896 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12897 reinterpret_cast<VkPipeline *>( &pipeline ) ) ); 12898 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 12899 { 12900 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12901 return VULKAN_HPP_UNEXPECTED( result ); 12902 # else 12903 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createGraphicsPipeline" ); 12904 # endif 12905 } 12906 12907 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 12908 } 12909 12910 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 12911 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type createComputePipelines(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) const12912 Device::createComputePipelines( 12913 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 12914 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos, 12915 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 12916 { 12917 std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() ); 12918 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateComputePipelines( 12919 static_cast<VkDevice>( m_device ), 12920 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 12921 createInfos.size(), 12922 reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ), 12923 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12924 reinterpret_cast<VkPipeline *>( pipelines.data() ) ) ); 12925 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 12926 { 12927 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12928 return VULKAN_HPP_UNEXPECTED( result ); 12929 # else 12930 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createComputePipelines" ); 12931 # endif 12932 } 12933 12934 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII; 12935 pipelinesRAII.reserve( pipelines.size() ); 12936 for ( auto & pipeline : pipelines ) 12937 { 12938 pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 12939 } 12940 return pipelinesRAII; 12941 } 12942 12943 VULKAN_HPP_NODISCARD 12944 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type createComputePipeline(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) const12945 Device::createComputePipeline( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 12946 VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & createInfo, 12947 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 12948 VULKAN_HPP_RAII_CREATE_NOEXCEPT 12949 { 12950 VULKAN_HPP_NAMESPACE::Pipeline pipeline; 12951 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateComputePipelines( 12952 static_cast<VkDevice>( m_device ), 12953 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 12954 1, 12955 reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), 12956 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12957 reinterpret_cast<VkPipeline *>( &pipeline ) ) ); 12958 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 12959 { 12960 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12961 return VULKAN_HPP_UNEXPECTED( result ); 12962 # else 12963 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createComputePipeline" ); 12964 # endif 12965 } 12966 12967 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 12968 } 12969 12970 VULKAN_HPP_NODISCARD 12971 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout>::Type createPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12972 Device::createPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & createInfo, 12973 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 12974 VULKAN_HPP_RAII_CREATE_NOEXCEPT 12975 { 12976 VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; 12977 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePipelineLayout( 12978 static_cast<VkDevice>( m_device ), 12979 reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ), 12980 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 12981 reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) ); 12982 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 12983 { 12984 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 12985 return VULKAN_HPP_UNEXPECTED( result ); 12986 # else 12987 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPipelineLayout" ); 12988 # endif 12989 } 12990 12991 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout( *this, *reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ), allocator ); 12992 } 12993 12994 VULKAN_HPP_NODISCARD 12995 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler>::Type createSampler(VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const12996 Device::createSampler( VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & createInfo, 12997 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 12998 { 12999 VULKAN_HPP_NAMESPACE::Sampler sampler; 13000 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSampler( 13001 static_cast<VkDevice>( m_device ), 13002 reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ), 13003 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 13004 reinterpret_cast<VkSampler *>( &sampler ) ) ); 13005 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13006 { 13007 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 13008 return VULKAN_HPP_UNEXPECTED( result ); 13009 # else 13010 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSampler" ); 13011 # endif 13012 } 13013 13014 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler( *this, *reinterpret_cast<VkSampler *>( &sampler ), allocator ); 13015 } 13016 13017 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 13018 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout>::Type createDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const13019 Device::createDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & createInfo, 13020 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 13021 VULKAN_HPP_RAII_CREATE_NOEXCEPT 13022 { 13023 VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; 13024 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorSetLayout( 13025 static_cast<VkDevice>( m_device ), 13026 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 13027 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 13028 reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) ); 13029 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13030 { 13031 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 13032 return VULKAN_HPP_UNEXPECTED( result ); 13033 # else 13034 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorSetLayout" ); 13035 # endif 13036 } 13037 13038 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout( *this, *reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ), allocator ); 13039 } 13040 13041 VULKAN_HPP_NODISCARD 13042 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool>::Type createDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const13043 Device::createDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & createInfo, 13044 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 13045 VULKAN_HPP_RAII_CREATE_NOEXCEPT 13046 { 13047 VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; 13048 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorPool( 13049 static_cast<VkDevice>( m_device ), 13050 reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ), 13051 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 13052 reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) ); 13053 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13054 { 13055 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 13056 return VULKAN_HPP_UNEXPECTED( result ); 13057 # else 13058 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorPool" ); 13059 # endif 13060 } 13061 13062 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool( *this, *reinterpret_cast<VkDescriptorPool *>( &descriptorPool ), allocator ); 13063 } 13064 reset(VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags) const13065 VULKAN_HPP_INLINE void DescriptorPool::reset( VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT 13066 { 13067 VULKAN_HPP_ASSERT( getDispatcher()->vkResetDescriptorPool && "Function <vkResetDescriptorPool> requires <VK_VERSION_1_0>" ); 13068 13069 getDispatcher()->vkResetDescriptorPool( 13070 static_cast<VkDevice>( m_device ), static_cast<VkDescriptorPool>( m_descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ); 13071 } 13072 13073 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 13074 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>>::Type allocateDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo) const13075 Device::allocateDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & allocateInfo ) const 13076 { 13077 std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount ); 13078 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13079 getDispatcher()->vkAllocateDescriptorSets( static_cast<VkDevice>( m_device ), 13080 reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), 13081 reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) ); 13082 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13083 { 13084 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 13085 return VULKAN_HPP_UNEXPECTED( result ); 13086 # else 13087 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateDescriptorSets" ); 13088 # endif 13089 } 13090 13091 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet> descriptorSetsRAII; 13092 descriptorSetsRAII.reserve( descriptorSets.size() ); 13093 for ( auto & descriptorSet : descriptorSets ) 13094 { 13095 descriptorSetsRAII.emplace_back( 13096 *this, *reinterpret_cast<VkDescriptorSet *>( &descriptorSet ), static_cast<VkDescriptorPool>( allocateInfo.descriptorPool ) ); 13097 } 13098 return descriptorSetsRAII; 13099 } 13100 updateDescriptorSets(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies) const13101 VULKAN_HPP_INLINE void Device::updateDescriptorSets( 13102 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites, 13103 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies ) const VULKAN_HPP_NOEXCEPT 13104 { 13105 VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateDescriptorSets && "Function <vkUpdateDescriptorSets> requires <VK_VERSION_1_0>" ); 13106 13107 getDispatcher()->vkUpdateDescriptorSets( static_cast<VkDevice>( m_device ), 13108 descriptorWrites.size(), 13109 reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ), 13110 descriptorCopies.size(), 13111 reinterpret_cast<const VkCopyDescriptorSet *>( descriptorCopies.data() ) ); 13112 } 13113 13114 VULKAN_HPP_NODISCARD 13115 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer>::Type createFramebuffer(VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const13116 Device::createFramebuffer( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & createInfo, 13117 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 13118 VULKAN_HPP_RAII_CREATE_NOEXCEPT 13119 { 13120 VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; 13121 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateFramebuffer( 13122 static_cast<VkDevice>( m_device ), 13123 reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ), 13124 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 13125 reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) ); 13126 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13127 { 13128 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 13129 return VULKAN_HPP_UNEXPECTED( result ); 13130 # else 13131 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createFramebuffer" ); 13132 # endif 13133 } 13134 13135 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer( *this, *reinterpret_cast<VkFramebuffer *>( &framebuffer ), allocator ); 13136 } 13137 13138 VULKAN_HPP_NODISCARD 13139 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type createRenderPass(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const13140 Device::createRenderPass( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & createInfo, 13141 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 13142 VULKAN_HPP_RAII_CREATE_NOEXCEPT 13143 { 13144 VULKAN_HPP_NAMESPACE::RenderPass renderPass; 13145 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRenderPass( 13146 static_cast<VkDevice>( m_device ), 13147 reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ), 13148 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 13149 reinterpret_cast<VkRenderPass *>( &renderPass ) ) ); 13150 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13151 { 13152 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 13153 return VULKAN_HPP_UNEXPECTED( result ); 13154 # else 13155 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass" ); 13156 # endif 13157 } 13158 13159 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, *reinterpret_cast<VkRenderPass *>( &renderPass ), allocator ); 13160 } 13161 getRenderAreaGranularity() const13162 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D RenderPass::getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT 13163 { 13164 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRenderAreaGranularity && "Function <vkGetRenderAreaGranularity> requires <VK_VERSION_1_0>" ); 13165 13166 VULKAN_HPP_NAMESPACE::Extent2D granularity; 13167 getDispatcher()->vkGetRenderAreaGranularity( 13168 static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( m_renderPass ), reinterpret_cast<VkExtent2D *>( &granularity ) ); 13169 13170 return granularity; 13171 } 13172 13173 VULKAN_HPP_NODISCARD 13174 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool>::Type createCommandPool(VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const13175 Device::createCommandPool( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & createInfo, 13176 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 13177 VULKAN_HPP_RAII_CREATE_NOEXCEPT 13178 { 13179 VULKAN_HPP_NAMESPACE::CommandPool commandPool; 13180 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCommandPool( 13181 static_cast<VkDevice>( m_device ), 13182 reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ), 13183 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 13184 reinterpret_cast<VkCommandPool *>( &commandPool ) ) ); 13185 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13186 { 13187 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 13188 return VULKAN_HPP_UNEXPECTED( result ); 13189 # else 13190 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCommandPool" ); 13191 # endif 13192 } 13193 13194 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool( *this, *reinterpret_cast<VkCommandPool *>( &commandPool ), allocator ); 13195 } 13196 reset(VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags) const13197 VULKAN_HPP_INLINE void CommandPool::reset( VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags ) const 13198 { 13199 VULKAN_HPP_ASSERT( getDispatcher()->vkResetCommandPool && "Function <vkResetCommandPool> requires <VK_VERSION_1_0>" ); 13200 13201 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkResetCommandPool( 13202 static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) ); 13203 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandPool::reset" ); 13204 } 13205 13206 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 13207 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>>::Type allocateCommandBuffers(VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo) const13208 Device::allocateCommandBuffers( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & allocateInfo ) const 13209 { 13210 std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers( allocateInfo.commandBufferCount ); 13211 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13212 getDispatcher()->vkAllocateCommandBuffers( static_cast<VkDevice>( m_device ), 13213 reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), 13214 reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) ); 13215 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 13216 { 13217 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 13218 return VULKAN_HPP_UNEXPECTED( result ); 13219 # else 13220 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::allocateCommandBuffers" ); 13221 # endif 13222 } 13223 13224 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer> commandBuffersRAII; 13225 commandBuffersRAII.reserve( commandBuffers.size() ); 13226 for ( auto & commandBuffer : commandBuffers ) 13227 { 13228 commandBuffersRAII.emplace_back( 13229 *this, *reinterpret_cast<VkCommandBuffer *>( &commandBuffer ), static_cast<VkCommandPool>( allocateInfo.commandPool ) ); 13230 } 13231 return commandBuffersRAII; 13232 } 13233 begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo) const13234 VULKAN_HPP_INLINE void CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo ) const 13235 { 13236 VULKAN_HPP_ASSERT( getDispatcher()->vkBeginCommandBuffer && "Function <vkBeginCommandBuffer> requires <VK_VERSION_1_0>" ); 13237 13238 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBeginCommandBuffer( 13239 static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) ); 13240 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" ); 13241 } 13242 end() const13243 VULKAN_HPP_INLINE void CommandBuffer::end() const 13244 { 13245 VULKAN_HPP_ASSERT( getDispatcher()->vkEndCommandBuffer && "Function <vkEndCommandBuffer> requires <VK_VERSION_1_0>" ); 13246 13247 VULKAN_HPP_NAMESPACE::Result result = 13248 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEndCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ) ) ); 13249 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" ); 13250 } 13251 reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags) const13252 VULKAN_HPP_INLINE void CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags ) const 13253 { 13254 VULKAN_HPP_ASSERT( getDispatcher()->vkResetCommandBuffer && "Function <vkResetCommandBuffer> requires <VK_VERSION_1_0>" ); 13255 13256 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13257 getDispatcher()->vkResetCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCommandBufferResetFlags>( flags ) ) ); 13258 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" ); 13259 } 13260 bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline) const13261 VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 13262 VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT 13263 { 13264 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindPipeline && "Function <vkCmdBindPipeline> requires <VK_VERSION_1_0>" ); 13265 13266 getDispatcher()->vkCmdBindPipeline( 13267 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) ); 13268 } 13269 13270 VULKAN_HPP_INLINE void setViewport(uint32_t firstViewport,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports) const13271 CommandBuffer::setViewport( uint32_t firstViewport, 13272 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT 13273 { 13274 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewport && "Function <vkCmdSetViewport> requires <VK_VERSION_1_0>" ); 13275 13276 getDispatcher()->vkCmdSetViewport( 13277 static_cast<VkCommandBuffer>( m_commandBuffer ), firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) ); 13278 } 13279 13280 VULKAN_HPP_INLINE void setScissor(uint32_t firstScissor,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors) const13281 CommandBuffer::setScissor( uint32_t firstScissor, 13282 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT 13283 { 13284 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetScissor && "Function <vkCmdSetScissor> requires <VK_VERSION_1_0>" ); 13285 13286 getDispatcher()->vkCmdSetScissor( 13287 static_cast<VkCommandBuffer>( m_commandBuffer ), firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) ); 13288 } 13289 setLineWidth(float lineWidth) const13290 VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth ) const VULKAN_HPP_NOEXCEPT 13291 { 13292 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineWidth && "Function <vkCmdSetLineWidth> requires <VK_VERSION_1_0>" ); 13293 13294 getDispatcher()->vkCmdSetLineWidth( static_cast<VkCommandBuffer>( m_commandBuffer ), lineWidth ); 13295 } 13296 13297 VULKAN_HPP_INLINE void setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor) const13298 CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT 13299 { 13300 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBias && "Function <vkCmdSetDepthBias> requires <VK_VERSION_1_0>" ); 13301 13302 getDispatcher()->vkCmdSetDepthBias( static_cast<VkCommandBuffer>( m_commandBuffer ), depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); 13303 } 13304 setBlendConstants(const float blendConstants[4]) const13305 VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT 13306 { 13307 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetBlendConstants && "Function <vkCmdSetBlendConstants> requires <VK_VERSION_1_0>" ); 13308 13309 getDispatcher()->vkCmdSetBlendConstants( static_cast<VkCommandBuffer>( m_commandBuffer ), blendConstants ); 13310 } 13311 setDepthBounds(float minDepthBounds,float maxDepthBounds) const13312 VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT 13313 { 13314 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBounds && "Function <vkCmdSetDepthBounds> requires <VK_VERSION_1_0>" ); 13315 13316 getDispatcher()->vkCmdSetDepthBounds( static_cast<VkCommandBuffer>( m_commandBuffer ), minDepthBounds, maxDepthBounds ); 13317 } 13318 setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask) const13319 VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 13320 uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT 13321 { 13322 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilCompareMask && "Function <vkCmdSetStencilCompareMask> requires <VK_VERSION_1_0>" ); 13323 13324 getDispatcher()->vkCmdSetStencilCompareMask( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), compareMask ); 13325 } 13326 setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask) const13327 VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT 13328 { 13329 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilWriteMask && "Function <vkCmdSetStencilWriteMask> requires <VK_VERSION_1_0>" ); 13330 13331 getDispatcher()->vkCmdSetStencilWriteMask( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), writeMask ); 13332 } 13333 setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference) const13334 VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT 13335 { 13336 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilReference && "Function <vkCmdSetStencilReference> requires <VK_VERSION_1_0>" ); 13337 13338 getDispatcher()->vkCmdSetStencilReference( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), reference ); 13339 } 13340 13341 VULKAN_HPP_INLINE void bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & dynamicOffsets) const13342 CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 13343 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 13344 uint32_t firstSet, 13345 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets, 13346 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & dynamicOffsets ) const VULKAN_HPP_NOEXCEPT 13347 { 13348 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorSets && "Function <vkCmdBindDescriptorSets> requires <VK_VERSION_1_0>" ); 13349 13350 getDispatcher()->vkCmdBindDescriptorSets( static_cast<VkCommandBuffer>( m_commandBuffer ), 13351 static_cast<VkPipelineBindPoint>( pipelineBindPoint ), 13352 static_cast<VkPipelineLayout>( layout ), 13353 firstSet, 13354 descriptorSets.size(), 13355 reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ), 13356 dynamicOffsets.size(), 13357 dynamicOffsets.data() ); 13358 } 13359 bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType) const13360 VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, 13361 VULKAN_HPP_NAMESPACE::DeviceSize offset, 13362 VULKAN_HPP_NAMESPACE::IndexType indexType ) const VULKAN_HPP_NOEXCEPT 13363 { 13364 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindIndexBuffer && "Function <vkCmdBindIndexBuffer> requires <VK_VERSION_1_0>" ); 13365 13366 getDispatcher()->vkCmdBindIndexBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 13367 static_cast<VkBuffer>( buffer ), 13368 static_cast<VkDeviceSize>( offset ), 13369 static_cast<VkIndexType>( indexType ) ); 13370 } 13371 bindVertexBuffers(uint32_t firstBinding,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets) const13372 VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, 13373 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 13374 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets ) const 13375 { 13376 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindVertexBuffers && "Function <vkCmdBindVertexBuffers> requires <VK_VERSION_1_0>" ); 13377 # ifdef VULKAN_HPP_NO_EXCEPTIONS 13378 VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); 13379 # else 13380 if ( buffers.size() != offsets.size() ) 13381 { 13382 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" ); 13383 } 13384 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 13385 13386 getDispatcher()->vkCmdBindVertexBuffers( static_cast<VkCommandBuffer>( m_commandBuffer ), 13387 firstBinding, 13388 buffers.size(), 13389 reinterpret_cast<const VkBuffer *>( buffers.data() ), 13390 reinterpret_cast<const VkDeviceSize *>( offsets.data() ) ); 13391 } 13392 13393 VULKAN_HPP_INLINE void draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance) const13394 CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT 13395 { 13396 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDraw && "Function <vkCmdDraw> requires <VK_VERSION_1_0>" ); 13397 13398 getDispatcher()->vkCmdDraw( static_cast<VkCommandBuffer>( m_commandBuffer ), vertexCount, instanceCount, firstVertex, firstInstance ); 13399 } 13400 drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance) const13401 VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( 13402 uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT 13403 { 13404 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndexed && "Function <vkCmdDrawIndexed> requires <VK_VERSION_1_0>" ); 13405 13406 getDispatcher()->vkCmdDrawIndexed( static_cast<VkCommandBuffer>( m_commandBuffer ), indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); 13407 } 13408 drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride) const13409 VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 13410 VULKAN_HPP_NAMESPACE::DeviceSize offset, 13411 uint32_t drawCount, 13412 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 13413 { 13414 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirect && "Function <vkCmdDrawIndirect> requires <VK_VERSION_1_0>" ); 13415 13416 getDispatcher()->vkCmdDrawIndirect( 13417 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride ); 13418 } 13419 drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride) const13420 VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 13421 VULKAN_HPP_NAMESPACE::DeviceSize offset, 13422 uint32_t drawCount, 13423 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 13424 { 13425 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndexedIndirect && "Function <vkCmdDrawIndexedIndirect> requires <VK_VERSION_1_0>" ); 13426 13427 getDispatcher()->vkCmdDrawIndexedIndirect( 13428 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride ); 13429 } 13430 dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const13431 VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT 13432 { 13433 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatch && "Function <vkCmdDispatch> requires <VK_VERSION_1_0>" ); 13434 13435 getDispatcher()->vkCmdDispatch( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ ); 13436 } 13437 dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset) const13438 VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, 13439 VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT 13440 { 13441 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchIndirect && "Function <vkCmdDispatchIndirect> requires <VK_VERSION_1_0>" ); 13442 13443 getDispatcher()->vkCmdDispatchIndirect( 13444 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) ); 13445 } 13446 13447 VULKAN_HPP_INLINE void copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions) const13448 CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, 13449 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 13450 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions ) const VULKAN_HPP_NOEXCEPT 13451 { 13452 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer && "Function <vkCmdCopyBuffer> requires <VK_VERSION_1_0>" ); 13453 13454 getDispatcher()->vkCmdCopyBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 13455 static_cast<VkBuffer>( srcBuffer ), 13456 static_cast<VkBuffer>( dstBuffer ), 13457 regions.size(), 13458 reinterpret_cast<const VkBufferCopy *>( regions.data() ) ); 13459 } 13460 13461 VULKAN_HPP_INLINE void copyImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions) const13462 CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, 13463 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 13464 VULKAN_HPP_NAMESPACE::Image dstImage, 13465 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 13466 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT 13467 { 13468 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage && "Function <vkCmdCopyImage> requires <VK_VERSION_1_0>" ); 13469 13470 getDispatcher()->vkCmdCopyImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 13471 static_cast<VkImage>( srcImage ), 13472 static_cast<VkImageLayout>( srcImageLayout ), 13473 static_cast<VkImage>( dstImage ), 13474 static_cast<VkImageLayout>( dstImageLayout ), 13475 regions.size(), 13476 reinterpret_cast<const VkImageCopy *>( regions.data() ) ); 13477 } 13478 blitImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions,VULKAN_HPP_NAMESPACE::Filter filter) const13479 VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, 13480 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 13481 VULKAN_HPP_NAMESPACE::Image dstImage, 13482 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 13483 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions, 13484 VULKAN_HPP_NAMESPACE::Filter filter ) const VULKAN_HPP_NOEXCEPT 13485 { 13486 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage && "Function <vkCmdBlitImage> requires <VK_VERSION_1_0>" ); 13487 13488 getDispatcher()->vkCmdBlitImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 13489 static_cast<VkImage>( srcImage ), 13490 static_cast<VkImageLayout>( srcImageLayout ), 13491 static_cast<VkImage>( dstImage ), 13492 static_cast<VkImageLayout>( dstImageLayout ), 13493 regions.size(), 13494 reinterpret_cast<const VkImageBlit *>( regions.data() ), 13495 static_cast<VkFilter>( filter ) ); 13496 } 13497 copyBufferToImage(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions) const13498 VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( 13499 VULKAN_HPP_NAMESPACE::Buffer srcBuffer, 13500 VULKAN_HPP_NAMESPACE::Image dstImage, 13501 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 13502 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT 13503 { 13504 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage && "Function <vkCmdCopyBufferToImage> requires <VK_VERSION_1_0>" ); 13505 13506 getDispatcher()->vkCmdCopyBufferToImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 13507 static_cast<VkBuffer>( srcBuffer ), 13508 static_cast<VkImage>( dstImage ), 13509 static_cast<VkImageLayout>( dstImageLayout ), 13510 regions.size(), 13511 reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) ); 13512 } 13513 copyImageToBuffer(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions) const13514 VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( 13515 VULKAN_HPP_NAMESPACE::Image srcImage, 13516 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 13517 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 13518 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions ) const VULKAN_HPP_NOEXCEPT 13519 { 13520 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer && "Function <vkCmdCopyImageToBuffer> requires <VK_VERSION_1_0>" ); 13521 13522 getDispatcher()->vkCmdCopyImageToBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 13523 static_cast<VkImage>( srcImage ), 13524 static_cast<VkImageLayout>( srcImageLayout ), 13525 static_cast<VkBuffer>( dstBuffer ), 13526 regions.size(), 13527 reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) ); 13528 } 13529 13530 template <typename DataType> updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::ArrayProxy<const DataType> const & data) const13531 VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 13532 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 13533 VULKAN_HPP_NAMESPACE::ArrayProxy<const DataType> const & data ) const VULKAN_HPP_NOEXCEPT 13534 { 13535 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdUpdateBuffer && "Function <vkCmdUpdateBuffer> requires <VK_VERSION_1_0>" ); 13536 13537 getDispatcher()->vkCmdUpdateBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 13538 static_cast<VkBuffer>( dstBuffer ), 13539 static_cast<VkDeviceSize>( dstOffset ), 13540 data.size() * sizeof( DataType ), 13541 reinterpret_cast<const void *>( data.data() ) ); 13542 } 13543 fillBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::DeviceSize size,uint32_t data) const13544 VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 13545 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 13546 VULKAN_HPP_NAMESPACE::DeviceSize size, 13547 uint32_t data ) const VULKAN_HPP_NOEXCEPT 13548 { 13549 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdFillBuffer && "Function <vkCmdFillBuffer> requires <VK_VERSION_1_0>" ); 13550 13551 getDispatcher()->vkCmdFillBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), 13552 static_cast<VkBuffer>( dstBuffer ), 13553 static_cast<VkDeviceSize>( dstOffset ), 13554 static_cast<VkDeviceSize>( size ), 13555 data ); 13556 } 13557 clearColorImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearColorValue & color,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges) const13558 VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( 13559 VULKAN_HPP_NAMESPACE::Image image, 13560 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, 13561 const VULKAN_HPP_NAMESPACE::ClearColorValue & color, 13562 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const VULKAN_HPP_NOEXCEPT 13563 { 13564 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdClearColorImage && "Function <vkCmdClearColorImage> requires <VK_VERSION_1_0>" ); 13565 13566 getDispatcher()->vkCmdClearColorImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 13567 static_cast<VkImage>( image ), 13568 static_cast<VkImageLayout>( imageLayout ), 13569 reinterpret_cast<const VkClearColorValue *>( &color ), 13570 ranges.size(), 13571 reinterpret_cast<const VkImageSubresourceRange *>( ranges.data() ) ); 13572 } 13573 clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue & depthStencil,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges) const13574 VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( 13575 VULKAN_HPP_NAMESPACE::Image image, 13576 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, 13577 const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue & depthStencil, 13578 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges ) const VULKAN_HPP_NOEXCEPT 13579 { 13580 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdClearDepthStencilImage && "Function <vkCmdClearDepthStencilImage> requires <VK_VERSION_1_0>" ); 13581 13582 getDispatcher()->vkCmdClearDepthStencilImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 13583 static_cast<VkImage>( image ), 13584 static_cast<VkImageLayout>( imageLayout ), 13585 reinterpret_cast<const VkClearDepthStencilValue *>( &depthStencil ), 13586 ranges.size(), 13587 reinterpret_cast<const VkImageSubresourceRange *>( ranges.data() ) ); 13588 } 13589 13590 VULKAN_HPP_INLINE void clearAttachments(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects) const13591 CommandBuffer::clearAttachments( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments, 13592 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects ) const VULKAN_HPP_NOEXCEPT 13593 { 13594 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdClearAttachments && "Function <vkCmdClearAttachments> requires <VK_VERSION_1_0>" ); 13595 13596 getDispatcher()->vkCmdClearAttachments( static_cast<VkCommandBuffer>( m_commandBuffer ), 13597 attachments.size(), 13598 reinterpret_cast<const VkClearAttachment *>( attachments.data() ), 13599 rects.size(), 13600 reinterpret_cast<const VkClearRect *>( rects.data() ) ); 13601 } 13602 13603 VULKAN_HPP_INLINE void resolveImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions) const13604 CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, 13605 VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, 13606 VULKAN_HPP_NAMESPACE::Image dstImage, 13607 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 13608 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions ) const VULKAN_HPP_NOEXCEPT 13609 { 13610 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage && "Function <vkCmdResolveImage> requires <VK_VERSION_1_0>" ); 13611 13612 getDispatcher()->vkCmdResolveImage( static_cast<VkCommandBuffer>( m_commandBuffer ), 13613 static_cast<VkImage>( srcImage ), 13614 static_cast<VkImageLayout>( srcImageLayout ), 13615 static_cast<VkImage>( dstImage ), 13616 static_cast<VkImageLayout>( dstImageLayout ), 13617 regions.size(), 13618 reinterpret_cast<const VkImageResolve *>( regions.data() ) ); 13619 } 13620 setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask) const13621 VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, 13622 VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT 13623 { 13624 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent && "Function <vkCmdSetEvent> requires <VK_VERSION_1_0>" ); 13625 13626 getDispatcher()->vkCmdSetEvent( 13627 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) ); 13628 } 13629 resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask) const13630 VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, 13631 VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT 13632 { 13633 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent && "Function <vkCmdResetEvent> requires <VK_VERSION_1_0>" ); 13634 13635 getDispatcher()->vkCmdResetEvent( 13636 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) ); 13637 } 13638 waitEvents(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers) const13639 VULKAN_HPP_INLINE void CommandBuffer::waitEvents( 13640 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 13641 VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, 13642 VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, 13643 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, 13644 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, 13645 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT 13646 { 13647 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents && "Function <vkCmdWaitEvents> requires <VK_VERSION_1_0>" ); 13648 13649 getDispatcher()->vkCmdWaitEvents( static_cast<VkCommandBuffer>( m_commandBuffer ), 13650 events.size(), 13651 reinterpret_cast<const VkEvent *>( events.data() ), 13652 static_cast<VkPipelineStageFlags>( srcStageMask ), 13653 static_cast<VkPipelineStageFlags>( dstStageMask ), 13654 memoryBarriers.size(), 13655 reinterpret_cast<const VkMemoryBarrier *>( memoryBarriers.data() ), 13656 bufferMemoryBarriers.size(), 13657 reinterpret_cast<const VkBufferMemoryBarrier *>( bufferMemoryBarriers.data() ), 13658 imageMemoryBarriers.size(), 13659 reinterpret_cast<const VkImageMemoryBarrier *>( imageMemoryBarriers.data() ) ); 13660 } 13661 pipelineBarrier(VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers) const13662 VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( 13663 VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, 13664 VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, 13665 VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, 13666 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers, 13667 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers, 13668 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT 13669 { 13670 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier && "Function <vkCmdPipelineBarrier> requires <VK_VERSION_1_0>" ); 13671 13672 getDispatcher()->vkCmdPipelineBarrier( static_cast<VkCommandBuffer>( m_commandBuffer ), 13673 static_cast<VkPipelineStageFlags>( srcStageMask ), 13674 static_cast<VkPipelineStageFlags>( dstStageMask ), 13675 static_cast<VkDependencyFlags>( dependencyFlags ), 13676 memoryBarriers.size(), 13677 reinterpret_cast<const VkMemoryBarrier *>( memoryBarriers.data() ), 13678 bufferMemoryBarriers.size(), 13679 reinterpret_cast<const VkBufferMemoryBarrier *>( bufferMemoryBarriers.data() ), 13680 imageMemoryBarriers.size(), 13681 reinterpret_cast<const VkImageMemoryBarrier *>( imageMemoryBarriers.data() ) ); 13682 } 13683 beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags) const13684 VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 13685 uint32_t query, 13686 VULKAN_HPP_NAMESPACE::QueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT 13687 { 13688 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginQuery && "Function <vkCmdBeginQuery> requires <VK_VERSION_1_0>" ); 13689 13690 getDispatcher()->vkCmdBeginQuery( 13691 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) ); 13692 } 13693 endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query) const13694 VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT 13695 { 13696 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndQuery && "Function <vkCmdEndQuery> requires <VK_VERSION_1_0>" ); 13697 13698 getDispatcher()->vkCmdEndQuery( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query ); 13699 } 13700 13701 VULKAN_HPP_INLINE void resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount) const13702 CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT 13703 { 13704 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetQueryPool && "Function <vkCmdResetQueryPool> requires <VK_VERSION_1_0>" ); 13705 13706 getDispatcher()->vkCmdResetQueryPool( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount ); 13707 } 13708 writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query) const13709 VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, 13710 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 13711 uint32_t query ) const VULKAN_HPP_NOEXCEPT 13712 { 13713 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp && "Function <vkCmdWriteTimestamp> requires <VK_VERSION_1_0>" ); 13714 13715 getDispatcher()->vkCmdWriteTimestamp( 13716 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query ); 13717 } 13718 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) const13719 VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 13720 uint32_t firstQuery, 13721 uint32_t queryCount, 13722 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 13723 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 13724 VULKAN_HPP_NAMESPACE::DeviceSize stride, 13725 VULKAN_HPP_NAMESPACE::QueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT 13726 { 13727 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyQueryPoolResults && "Function <vkCmdCopyQueryPoolResults> requires <VK_VERSION_1_0>" ); 13728 13729 getDispatcher()->vkCmdCopyQueryPoolResults( static_cast<VkCommandBuffer>( m_commandBuffer ), 13730 static_cast<VkQueryPool>( queryPool ), 13731 firstQuery, 13732 queryCount, 13733 static_cast<VkBuffer>( dstBuffer ), 13734 static_cast<VkDeviceSize>( dstOffset ), 13735 static_cast<VkDeviceSize>( stride ), 13736 static_cast<VkQueryResultFlags>( flags ) ); 13737 } 13738 13739 template <typename ValuesType> pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,uint32_t offset,VULKAN_HPP_NAMESPACE::ArrayProxy<const ValuesType> const & values) const13740 VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, 13741 VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, 13742 uint32_t offset, 13743 VULKAN_HPP_NAMESPACE::ArrayProxy<const ValuesType> const & values ) const VULKAN_HPP_NOEXCEPT 13744 { 13745 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushConstants && "Function <vkCmdPushConstants> requires <VK_VERSION_1_0>" ); 13746 13747 getDispatcher()->vkCmdPushConstants( static_cast<VkCommandBuffer>( m_commandBuffer ), 13748 static_cast<VkPipelineLayout>( layout ), 13749 static_cast<VkShaderStageFlags>( stageFlags ), 13750 offset, 13751 values.size() * sizeof( ValuesType ), 13752 reinterpret_cast<const void *>( values.data() ) ); 13753 } 13754 beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents) const13755 VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 13756 VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT 13757 { 13758 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderPass && "Function <vkCmdBeginRenderPass> requires <VK_VERSION_1_0>" ); 13759 13760 getDispatcher()->vkCmdBeginRenderPass( static_cast<VkCommandBuffer>( m_commandBuffer ), 13761 reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), 13762 static_cast<VkSubpassContents>( contents ) ); 13763 } 13764 nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents) const13765 VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents ) const VULKAN_HPP_NOEXCEPT 13766 { 13767 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdNextSubpass && "Function <vkCmdNextSubpass> requires <VK_VERSION_1_0>" ); 13768 13769 getDispatcher()->vkCmdNextSubpass( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkSubpassContents>( contents ) ); 13770 } 13771 endRenderPass() const13772 VULKAN_HPP_INLINE void CommandBuffer::endRenderPass() const VULKAN_HPP_NOEXCEPT 13773 { 13774 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderPass && "Function <vkCmdEndRenderPass> requires <VK_VERSION_1_0>" ); 13775 13776 getDispatcher()->vkCmdEndRenderPass( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 13777 } 13778 executeCommands(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers) const13779 VULKAN_HPP_INLINE void CommandBuffer::executeCommands( 13780 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers ) const VULKAN_HPP_NOEXCEPT 13781 { 13782 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdExecuteCommands && "Function <vkCmdExecuteCommands> requires <VK_VERSION_1_0>" ); 13783 13784 getDispatcher()->vkCmdExecuteCommands( 13785 static_cast<VkCommandBuffer>( m_commandBuffer ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) ); 13786 } 13787 13788 //=== VK_VERSION_1_1 === 13789 enumerateInstanceVersion() const13790 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Context::enumerateInstanceVersion() const 13791 { 13792 VULKAN_HPP_ASSERT( getDispatcher()->vkEnumerateInstanceVersion && "Function <vkEnumerateInstanceVersion> requires <VK_VERSION_1_1>" ); 13793 13794 uint32_t apiVersion; 13795 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumerateInstanceVersion( &apiVersion ) ); 13796 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceVersion" ); 13797 13798 return apiVersion; 13799 } 13800 13801 VULKAN_HPP_INLINE void bindBufferMemory2(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos) const13802 Device::bindBufferMemory2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const 13803 { 13804 VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory2 && "Function <vkBindBufferMemory2> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" ); 13805 13806 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindBufferMemory2( 13807 static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) ); 13808 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" ); 13809 } 13810 bindImageMemory2(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos) const13811 VULKAN_HPP_INLINE void Device::bindImageMemory2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const 13812 { 13813 VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory2 && "Function <vkBindImageMemory2> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" ); 13814 13815 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindImageMemory2( 13816 static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) ); 13817 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" ); 13818 } 13819 13820 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex) const13821 Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT 13822 { 13823 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupPeerMemoryFeatures && 13824 "Function <vkGetDeviceGroupPeerMemoryFeatures> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" ); 13825 13826 VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; 13827 getDispatcher()->vkGetDeviceGroupPeerMemoryFeatures( static_cast<VkDevice>( m_device ), 13828 heapIndex, 13829 localDeviceIndex, 13830 remoteDeviceIndex, 13831 reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) ); 13832 13833 return peerMemoryFeatures; 13834 } 13835 setDeviceMask(uint32_t deviceMask) const13836 VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT 13837 { 13838 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDeviceMask && "Function <vkCmdSetDeviceMask> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" ); 13839 13840 getDispatcher()->vkCmdSetDeviceMask( static_cast<VkCommandBuffer>( m_commandBuffer ), deviceMask ); 13841 } 13842 dispatchBase(uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const13843 VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, 13844 uint32_t baseGroupY, 13845 uint32_t baseGroupZ, 13846 uint32_t groupCountX, 13847 uint32_t groupCountY, 13848 uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT 13849 { 13850 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchBase && "Function <vkCmdDispatchBase> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" ); 13851 13852 getDispatcher()->vkCmdDispatchBase( 13853 static_cast<VkCommandBuffer>( m_commandBuffer ), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); 13854 } 13855 enumeratePhysicalDeviceGroups() const13856 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> Instance::enumeratePhysicalDeviceGroups() const 13857 { 13858 VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceGroups && 13859 "Function <vkEnumeratePhysicalDeviceGroups> requires <VK_KHR_device_group_creation> or <VK_VERSION_1_1>" ); 13860 13861 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> physicalDeviceGroupProperties; 13862 uint32_t physicalDeviceGroupCount; 13863 VULKAN_HPP_NAMESPACE::Result result; 13864 do 13865 { 13866 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13867 getDispatcher()->vkEnumeratePhysicalDeviceGroups( static_cast<VkInstance>( m_instance ), &physicalDeviceGroupCount, nullptr ) ); 13868 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount ) 13869 { 13870 physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); 13871 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 13872 getDispatcher()->vkEnumeratePhysicalDeviceGroups( static_cast<VkInstance>( m_instance ), 13873 &physicalDeviceGroupCount, 13874 reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) ); 13875 } 13876 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 13877 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" ); 13878 VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); 13879 if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) 13880 { 13881 physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); 13882 } 13883 return physicalDeviceGroupProperties; 13884 } 13885 13886 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info) const13887 Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 13888 { 13889 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements2 && 13890 "Function <vkGetImageMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 13891 13892 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 13893 getDispatcher()->vkGetImageMemoryRequirements2( static_cast<VkDevice>( m_device ), 13894 reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), 13895 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 13896 13897 return memoryRequirements; 13898 } 13899 13900 template <typename X, typename Y, typename... Z> 13901 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info) const13902 Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 13903 { 13904 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements2 && 13905 "Function <vkGetImageMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 13906 13907 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 13908 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 13909 getDispatcher()->vkGetImageMemoryRequirements2( static_cast<VkDevice>( m_device ), 13910 reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), 13911 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 13912 13913 return structureChain; 13914 } 13915 13916 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info) const13917 Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 13918 { 13919 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements2 && 13920 "Function <vkGetBufferMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 13921 13922 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 13923 getDispatcher()->vkGetBufferMemoryRequirements2( static_cast<VkDevice>( m_device ), 13924 reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), 13925 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 13926 13927 return memoryRequirements; 13928 } 13929 13930 template <typename X, typename Y, typename... Z> 13931 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info) const13932 Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 13933 { 13934 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements2 && 13935 "Function <vkGetBufferMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 13936 13937 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 13938 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 13939 getDispatcher()->vkGetBufferMemoryRequirements2( static_cast<VkDevice>( m_device ), 13940 reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), 13941 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 13942 13943 return structureChain; 13944 } 13945 13946 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info) const13947 Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const 13948 { 13949 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSparseMemoryRequirements2 && 13950 "Function <vkGetImageSparseMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 13951 13952 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements; 13953 uint32_t sparseMemoryRequirementCount; 13954 getDispatcher()->vkGetImageSparseMemoryRequirements2( 13955 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr ); 13956 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 13957 getDispatcher()->vkGetImageSparseMemoryRequirements2( static_cast<VkDevice>( m_device ), 13958 reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), 13959 &sparseMemoryRequirementCount, 13960 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) ); 13961 13962 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 13963 if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() ) 13964 { 13965 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 13966 } 13967 return sparseMemoryRequirements; 13968 } 13969 getFeatures2() const13970 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT 13971 { 13972 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures2 && 13973 "Function <vkGetPhysicalDeviceFeatures2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 13974 13975 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; 13976 getDispatcher()->vkGetPhysicalDeviceFeatures2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 13977 reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) ); 13978 13979 return features; 13980 } 13981 13982 template <typename X, typename Y, typename... Z> getFeatures2() const13983 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT 13984 { 13985 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures2 && 13986 "Function <vkGetPhysicalDeviceFeatures2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 13987 13988 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 13989 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>(); 13990 getDispatcher()->vkGetPhysicalDeviceFeatures2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 13991 reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) ); 13992 13993 return structureChain; 13994 } 13995 getProperties2() const13996 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT 13997 { 13998 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties2 && 13999 "Function <vkGetPhysicalDeviceProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14000 14001 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; 14002 getDispatcher()->vkGetPhysicalDeviceProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14003 reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) ); 14004 14005 return properties; 14006 } 14007 14008 template <typename X, typename Y, typename... Z> getProperties2() const14009 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT 14010 { 14011 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties2 && 14012 "Function <vkGetPhysicalDeviceProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14013 14014 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 14015 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>(); 14016 getDispatcher()->vkGetPhysicalDeviceProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14017 reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) ); 14018 14019 return structureChain; 14020 } 14021 14022 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format) const14023 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 14024 { 14025 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties2 && 14026 "Function <vkGetPhysicalDeviceFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14027 14028 VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; 14029 getDispatcher()->vkGetPhysicalDeviceFormatProperties2( 14030 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) ); 14031 14032 return formatProperties; 14033 } 14034 14035 template <typename X, typename Y, typename... Z> 14036 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format) const14037 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 14038 { 14039 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties2 && 14040 "Function <vkGetPhysicalDeviceFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14041 14042 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 14043 VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>(); 14044 getDispatcher()->vkGetPhysicalDeviceFormatProperties2( 14045 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) ); 14046 14047 return structureChain; 14048 } 14049 14050 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties2 getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo) const14051 PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const 14052 { 14053 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2 && 14054 "Function <vkGetPhysicalDeviceImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14055 14056 VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; 14057 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14058 getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14059 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), 14060 reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) ); 14061 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); 14062 14063 return imageFormatProperties; 14064 } 14065 14066 template <typename X, typename Y, typename... Z> 14067 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo) const14068 PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const 14069 { 14070 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2 && 14071 "Function <vkGetPhysicalDeviceImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14072 14073 StructureChain<X, Y, Z...> structureChain; 14074 VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>(); 14075 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14076 getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14077 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), 14078 reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) ); 14079 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); 14080 14081 return structureChain; 14082 } 14083 getQueueFamilyProperties2() const14084 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> PhysicalDevice::getQueueFamilyProperties2() const 14085 { 14086 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2 && 14087 "Function <vkGetPhysicalDeviceQueueFamilyProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14088 14089 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties; 14090 uint32_t queueFamilyPropertyCount; 14091 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 14092 queueFamilyProperties.resize( queueFamilyPropertyCount ); 14093 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14094 &queueFamilyPropertyCount, 14095 reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) ); 14096 14097 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 14098 if ( queueFamilyPropertyCount < queueFamilyProperties.size() ) 14099 { 14100 queueFamilyProperties.resize( queueFamilyPropertyCount ); 14101 } 14102 return queueFamilyProperties; 14103 } 14104 14105 template <typename StructureChain> getQueueFamilyProperties2() const14106 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> PhysicalDevice::getQueueFamilyProperties2() const 14107 { 14108 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2 && 14109 "Function <vkGetPhysicalDeviceQueueFamilyProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14110 14111 std::vector<StructureChain> structureChains; 14112 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties; 14113 uint32_t queueFamilyPropertyCount; 14114 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 14115 structureChains.resize( queueFamilyPropertyCount ); 14116 queueFamilyProperties.resize( queueFamilyPropertyCount ); 14117 for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) 14118 { 14119 queueFamilyProperties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext; 14120 } 14121 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14122 &queueFamilyPropertyCount, 14123 reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) ); 14124 14125 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 14126 if ( queueFamilyPropertyCount < queueFamilyProperties.size() ) 14127 { 14128 structureChains.resize( queueFamilyPropertyCount ); 14129 } 14130 for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) 14131 { 14132 structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i]; 14133 } 14134 return structureChains; 14135 } 14136 14137 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2() const14138 PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT 14139 { 14140 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties2 && 14141 "Function <vkGetPhysicalDeviceMemoryProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14142 14143 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; 14144 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14145 reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) ); 14146 14147 return memoryProperties; 14148 } 14149 14150 template <typename X, typename Y, typename... Z> getMemoryProperties2() const14151 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT 14152 { 14153 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties2 && 14154 "Function <vkGetPhysicalDeviceMemoryProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14155 14156 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 14157 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = 14158 structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>(); 14159 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14160 reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) ); 14161 14162 return structureChain; 14163 } 14164 14165 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo) const14166 PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const 14167 { 14168 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2 && 14169 "Function <vkGetPhysicalDeviceSparseImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 14170 14171 std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> properties; 14172 uint32_t propertyCount; 14173 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14174 reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), 14175 &propertyCount, 14176 nullptr ); 14177 properties.resize( propertyCount ); 14178 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14179 reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), 14180 &propertyCount, 14181 reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) ); 14182 14183 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 14184 if ( propertyCount < properties.size() ) 14185 { 14186 properties.resize( propertyCount ); 14187 } 14188 return properties; 14189 } 14190 trim(VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags) const14191 VULKAN_HPP_INLINE void CommandPool::trim( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT 14192 { 14193 VULKAN_HPP_ASSERT( getDispatcher()->vkTrimCommandPool && "Function <vkTrimCommandPool> requires <VK_KHR_maintenance1> or <VK_VERSION_1_1>" ); 14194 14195 getDispatcher()->vkTrimCommandPool( 14196 static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) ); 14197 } 14198 14199 VULKAN_HPP_NODISCARD 14200 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue>::Type getQueue2(VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo) const14201 Device::getQueue2( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & queueInfo ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 14202 { 14203 VULKAN_HPP_NAMESPACE::Queue queue; 14204 getDispatcher()->vkGetDeviceQueue2( 14205 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceQueueInfo2 *>( &queueInfo ), reinterpret_cast<VkQueue *>( &queue ) ); 14206 14207 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue( *this, *reinterpret_cast<VkQueue *>( &queue ) ); 14208 } 14209 14210 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 14211 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion>::Type createSamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const14212 Device::createSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo, 14213 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 14214 VULKAN_HPP_RAII_CREATE_NOEXCEPT 14215 { 14216 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; 14217 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSamplerYcbcrConversion( 14218 static_cast<VkDevice>( m_device ), 14219 reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), 14220 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 14221 reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) ); 14222 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14223 { 14224 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 14225 return VULKAN_HPP_UNEXPECTED( result ); 14226 # else 14227 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSamplerYcbcrConversion" ); 14228 # endif 14229 } 14230 14231 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion( 14232 *this, *reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ), allocator ); 14233 } 14234 14235 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 14236 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate>::Type createDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const14237 Device::createDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo, 14238 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 14239 VULKAN_HPP_RAII_CREATE_NOEXCEPT 14240 { 14241 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; 14242 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorUpdateTemplate( 14243 static_cast<VkDevice>( m_device ), 14244 reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), 14245 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 14246 reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) ); 14247 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14248 { 14249 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 14250 return VULKAN_HPP_UNEXPECTED( result ); 14251 # else 14252 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorUpdateTemplate" ); 14253 # endif 14254 } 14255 14256 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate( 14257 *this, *reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ), allocator ); 14258 } 14259 14260 template <typename DataType> updateWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,DataType const & data) const14261 VULKAN_HPP_INLINE void DescriptorSet::updateWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 14262 DataType const & data ) const VULKAN_HPP_NOEXCEPT 14263 { 14264 VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateDescriptorSetWithTemplate && 14265 "Function <vkUpdateDescriptorSetWithTemplate> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" ); 14266 14267 getDispatcher()->vkUpdateDescriptorSetWithTemplate( static_cast<VkDevice>( m_device ), 14268 static_cast<VkDescriptorSet>( m_descriptorSet ), 14269 static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), 14270 reinterpret_cast<const void *>( &data ) ); 14271 } 14272 14273 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo) const14274 PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT 14275 { 14276 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalBufferProperties && 14277 "Function <vkGetPhysicalDeviceExternalBufferProperties> requires <VK_KHR_external_memory_capabilities> or <VK_VERSION_1_1>" ); 14278 14279 VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; 14280 getDispatcher()->vkGetPhysicalDeviceExternalBufferProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14281 reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), 14282 reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) ); 14283 14284 return externalBufferProperties; 14285 } 14286 14287 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo) const14288 PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT 14289 { 14290 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalFenceProperties && 14291 "Function <vkGetPhysicalDeviceExternalFenceProperties> requires <VK_KHR_external_fence_capabilities> or <VK_VERSION_1_1>" ); 14292 14293 VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; 14294 getDispatcher()->vkGetPhysicalDeviceExternalFenceProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14295 reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), 14296 reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) ); 14297 14298 return externalFenceProperties; 14299 } 14300 getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo) const14301 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( 14302 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT 14303 { 14304 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalSemaphoreProperties && 14305 "Function <vkGetPhysicalDeviceExternalSemaphoreProperties> requires <VK_KHR_external_semaphore_capabilities> or <VK_VERSION_1_1>" ); 14306 14307 VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; 14308 getDispatcher()->vkGetPhysicalDeviceExternalSemaphoreProperties( 14309 static_cast<VkPhysicalDevice>( m_physicalDevice ), 14310 reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), 14311 reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) ); 14312 14313 return externalSemaphoreProperties; 14314 } 14315 14316 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo) const14317 Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 14318 { 14319 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSupport && 14320 "Function <vkGetDescriptorSetLayoutSupport> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" ); 14321 14322 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; 14323 getDispatcher()->vkGetDescriptorSetLayoutSupport( static_cast<VkDevice>( m_device ), 14324 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 14325 reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) ); 14326 14327 return support; 14328 } 14329 14330 template <typename X, typename Y, typename... Z> 14331 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo) const14332 Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 14333 { 14334 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSupport && 14335 "Function <vkGetDescriptorSetLayoutSupport> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" ); 14336 14337 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 14338 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>(); 14339 getDispatcher()->vkGetDescriptorSetLayoutSupport( static_cast<VkDevice>( m_device ), 14340 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 14341 reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) ); 14342 14343 return structureChain; 14344 } 14345 14346 //=== VK_VERSION_1_2 === 14347 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) const14348 VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, 14349 VULKAN_HPP_NAMESPACE::DeviceSize offset, 14350 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 14351 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 14352 uint32_t maxDrawCount, 14353 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 14354 { 14355 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectCount && 14356 "Function <vkCmdDrawIndirectCount> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" ); 14357 14358 getDispatcher()->vkCmdDrawIndirectCount( static_cast<VkCommandBuffer>( m_commandBuffer ), 14359 static_cast<VkBuffer>( buffer ), 14360 static_cast<VkDeviceSize>( offset ), 14361 static_cast<VkBuffer>( countBuffer ), 14362 static_cast<VkDeviceSize>( countBufferOffset ), 14363 maxDrawCount, 14364 stride ); 14365 } 14366 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) const14367 VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, 14368 VULKAN_HPP_NAMESPACE::DeviceSize offset, 14369 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 14370 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 14371 uint32_t maxDrawCount, 14372 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 14373 { 14374 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndexedIndirectCount && 14375 "Function <vkCmdDrawIndexedIndirectCount> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" ); 14376 14377 getDispatcher()->vkCmdDrawIndexedIndirectCount( static_cast<VkCommandBuffer>( m_commandBuffer ), 14378 static_cast<VkBuffer>( buffer ), 14379 static_cast<VkDeviceSize>( offset ), 14380 static_cast<VkBuffer>( countBuffer ), 14381 static_cast<VkDeviceSize>( countBufferOffset ), 14382 maxDrawCount, 14383 stride ); 14384 } 14385 14386 VULKAN_HPP_NODISCARD 14387 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type createRenderPass2(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const14388 Device::createRenderPass2( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo, 14389 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 14390 VULKAN_HPP_RAII_CREATE_NOEXCEPT 14391 { 14392 VULKAN_HPP_NAMESPACE::RenderPass renderPass; 14393 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRenderPass2( 14394 static_cast<VkDevice>( m_device ), 14395 reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), 14396 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 14397 reinterpret_cast<VkRenderPass *>( &renderPass ) ) ); 14398 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14399 { 14400 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 14401 return VULKAN_HPP_UNEXPECTED( result ); 14402 # else 14403 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass2" ); 14404 # endif 14405 } 14406 14407 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, *reinterpret_cast<VkRenderPass *>( &renderPass ), allocator ); 14408 } 14409 beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo) const14410 VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 14411 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT 14412 { 14413 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderPass2 && 14414 "Function <vkCmdBeginRenderPass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" ); 14415 14416 getDispatcher()->vkCmdBeginRenderPass2( static_cast<VkCommandBuffer>( m_commandBuffer ), 14417 reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), 14418 reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) ); 14419 } 14420 nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo) const14421 VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo, 14422 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT 14423 { 14424 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdNextSubpass2 && "Function <vkCmdNextSubpass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" ); 14425 14426 getDispatcher()->vkCmdNextSubpass2( static_cast<VkCommandBuffer>( m_commandBuffer ), 14427 reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), 14428 reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) ); 14429 } 14430 endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo) const14431 VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT 14432 { 14433 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderPass2 && "Function <vkCmdEndRenderPass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" ); 14434 14435 getDispatcher()->vkCmdEndRenderPass2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) ); 14436 } 14437 reset(uint32_t firstQuery,uint32_t queryCount) const14438 VULKAN_HPP_INLINE void QueryPool::reset( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT 14439 { 14440 VULKAN_HPP_ASSERT( getDispatcher()->vkResetQueryPool && "Function <vkResetQueryPool> requires <VK_EXT_host_query_reset> or <VK_VERSION_1_2>" ); 14441 14442 getDispatcher()->vkResetQueryPool( static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( m_queryPool ), firstQuery, queryCount ); 14443 } 14444 getCounterValue() const14445 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValue() const 14446 { 14447 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreCounterValue && 14448 "Function <vkGetSemaphoreCounterValue> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" ); 14449 14450 uint64_t value; 14451 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14452 getDispatcher()->vkGetSemaphoreCounterValue( static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), &value ) ); 14453 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValue" ); 14454 14455 return value; 14456 } 14457 waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo,uint64_t timeout) const14458 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, 14459 uint64_t timeout ) const 14460 { 14461 VULKAN_HPP_ASSERT( getDispatcher()->vkWaitSemaphores && "Function <vkWaitSemaphores> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" ); 14462 14463 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14464 getDispatcher()->vkWaitSemaphores( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) ); 14465 VULKAN_HPP_NAMESPACE::detail::resultCheck( 14466 result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); 14467 14468 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 14469 } 14470 signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo) const14471 VULKAN_HPP_INLINE void Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const 14472 { 14473 VULKAN_HPP_ASSERT( getDispatcher()->vkSignalSemaphore && "Function <vkSignalSemaphore> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" ); 14474 14475 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14476 getDispatcher()->vkSignalSemaphore( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) ); 14477 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" ); 14478 } 14479 14480 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const14481 Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 14482 { 14483 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferDeviceAddress && 14484 "Function <vkGetBufferDeviceAddress> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" ); 14485 14486 VkDeviceAddress result = 14487 getDispatcher()->vkGetBufferDeviceAddress( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ); 14488 14489 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result ); 14490 } 14491 14492 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const14493 Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 14494 { 14495 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferOpaqueCaptureAddress && 14496 "Function <vkGetBufferOpaqueCaptureAddress> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" ); 14497 14498 uint64_t result = 14499 getDispatcher()->vkGetBufferOpaqueCaptureAddress( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ); 14500 14501 return result; 14502 } 14503 14504 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info) const14505 Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 14506 { 14507 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddress && 14508 "Function <vkGetDeviceMemoryOpaqueCaptureAddress> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" ); 14509 14510 uint64_t result = getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddress( static_cast<VkDevice>( m_device ), 14511 reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) ); 14512 14513 return result; 14514 } 14515 14516 //=== VK_VERSION_1_3 === 14517 getToolProperties() const14518 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> PhysicalDevice::getToolProperties() const 14519 { 14520 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceToolProperties && 14521 "Function <vkGetPhysicalDeviceToolProperties> requires <VK_EXT_tooling_info> or <VK_VERSION_1_3>" ); 14522 14523 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> toolProperties; 14524 uint32_t toolCount; 14525 VULKAN_HPP_NAMESPACE::Result result; 14526 do 14527 { 14528 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14529 getDispatcher()->vkGetPhysicalDeviceToolProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, nullptr ) ); 14530 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount ) 14531 { 14532 toolProperties.resize( toolCount ); 14533 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceToolProperties( 14534 static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) ); 14535 } 14536 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 14537 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" ); 14538 VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); 14539 if ( toolCount < toolProperties.size() ) 14540 { 14541 toolProperties.resize( toolCount ); 14542 } 14543 return toolProperties; 14544 } 14545 14546 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 14547 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot>::Type createPrivateDataSlot(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const14548 Device::createPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & createInfo, 14549 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 14550 VULKAN_HPP_RAII_CREATE_NOEXCEPT 14551 { 14552 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot; 14553 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePrivateDataSlot( 14554 static_cast<VkDevice>( m_device ), 14555 reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ), 14556 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 14557 reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) ); 14558 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 14559 { 14560 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 14561 return VULKAN_HPP_UNEXPECTED( result ); 14562 # else 14563 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPrivateDataSlot" ); 14564 # endif 14565 } 14566 14567 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot( *this, *reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ), allocator ); 14568 } 14569 setPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,uint64_t data) const14570 VULKAN_HPP_INLINE void Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 14571 uint64_t objectHandle, 14572 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, 14573 uint64_t data ) const 14574 { 14575 VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateData && "Function <vkSetPrivateData> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" ); 14576 14577 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetPrivateData( 14578 static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) ); 14579 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" ); 14580 } 14581 getPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot) const14582 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 14583 uint64_t objectHandle, 14584 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot ) const VULKAN_HPP_NOEXCEPT 14585 { 14586 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPrivateData && "Function <vkGetPrivateData> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" ); 14587 14588 uint64_t data; 14589 getDispatcher()->vkGetPrivateData( 14590 static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data ); 14591 14592 return data; 14593 } 14594 setEvent2(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo) const14595 VULKAN_HPP_INLINE void CommandBuffer::setEvent2( VULKAN_HPP_NAMESPACE::Event event, 14596 const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT 14597 { 14598 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent2 && "Function <vkCmdSetEvent2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 14599 14600 getDispatcher()->vkCmdSetEvent2( 14601 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) ); 14602 } 14603 resetEvent2(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask) const14604 VULKAN_HPP_INLINE void CommandBuffer::resetEvent2( VULKAN_HPP_NAMESPACE::Event event, 14605 VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT 14606 { 14607 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent2 && "Function <vkCmdResetEvent2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 14608 14609 getDispatcher()->vkCmdResetEvent2( 14610 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2>( stageMask ) ); 14611 } 14612 14613 VULKAN_HPP_INLINE void waitEvents2(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos) const14614 CommandBuffer::waitEvents2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 14615 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos ) const 14616 { 14617 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents2 && "Function <vkCmdWaitEvents2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 14618 # ifdef VULKAN_HPP_NO_EXCEPTIONS 14619 VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() ); 14620 # else 14621 if ( events.size() != dependencyInfos.size() ) 14622 { 14623 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2: events.size() != dependencyInfos.size()" ); 14624 } 14625 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 14626 14627 getDispatcher()->vkCmdWaitEvents2( static_cast<VkCommandBuffer>( m_commandBuffer ), 14628 events.size(), 14629 reinterpret_cast<const VkEvent *>( events.data() ), 14630 reinterpret_cast<const VkDependencyInfo *>( dependencyInfos.data() ) ); 14631 } 14632 pipelineBarrier2(const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo) const14633 VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT 14634 { 14635 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier2 && "Function <vkCmdPipelineBarrier2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 14636 14637 getDispatcher()->vkCmdPipelineBarrier2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) ); 14638 } 14639 writeTimestamp2(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query) const14640 VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage, 14641 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 14642 uint32_t query ) const VULKAN_HPP_NOEXCEPT 14643 { 14644 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp2 && "Function <vkCmdWriteTimestamp2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 14645 14646 getDispatcher()->vkCmdWriteTimestamp2( 14647 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlags2>( stage ), static_cast<VkQueryPool>( queryPool ), query ); 14648 } 14649 submit2(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,VULKAN_HPP_NAMESPACE::Fence fence) const14650 VULKAN_HPP_INLINE void Queue::submit2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits, 14651 VULKAN_HPP_NAMESPACE::Fence fence ) const 14652 { 14653 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2 && "Function <vkQueueSubmit2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 14654 14655 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSubmit2( 14656 static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) ) ); 14657 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" ); 14658 } 14659 copyBuffer2(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo) const14660 VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT 14661 { 14662 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer2 && "Function <vkCmdCopyBuffer2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 14663 14664 getDispatcher()->vkCmdCopyBuffer2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyBufferInfo2 *>( ©BufferInfo ) ); 14665 } 14666 copyImage2(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo) const14667 VULKAN_HPP_INLINE void CommandBuffer::copyImage2( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo ) const VULKAN_HPP_NOEXCEPT 14668 { 14669 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage2 && "Function <vkCmdCopyImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 14670 14671 getDispatcher()->vkCmdCopyImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyImageInfo2 *>( ©ImageInfo ) ); 14672 } 14673 14674 VULKAN_HPP_INLINE void copyBufferToImage2(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo) const14675 CommandBuffer::copyBufferToImage2( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT 14676 { 14677 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage2 && 14678 "Function <vkCmdCopyBufferToImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 14679 14680 getDispatcher()->vkCmdCopyBufferToImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), 14681 reinterpret_cast<const VkCopyBufferToImageInfo2 *>( ©BufferToImageInfo ) ); 14682 } 14683 14684 VULKAN_HPP_INLINE void copyImageToBuffer2(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo) const14685 CommandBuffer::copyImageToBuffer2( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT 14686 { 14687 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer2 && 14688 "Function <vkCmdCopyImageToBuffer2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 14689 14690 getDispatcher()->vkCmdCopyImageToBuffer2( static_cast<VkCommandBuffer>( m_commandBuffer ), 14691 reinterpret_cast<const VkCopyImageToBufferInfo2 *>( ©ImageToBufferInfo ) ); 14692 } 14693 blitImage2(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo) const14694 VULKAN_HPP_INLINE void CommandBuffer::blitImage2( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo ) const VULKAN_HPP_NOEXCEPT 14695 { 14696 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage2 && "Function <vkCmdBlitImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 14697 14698 getDispatcher()->vkCmdBlitImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkBlitImageInfo2 *>( &blitImageInfo ) ); 14699 } 14700 resolveImage2(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo) const14701 VULKAN_HPP_INLINE void CommandBuffer::resolveImage2( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT 14702 { 14703 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage2 && "Function <vkCmdResolveImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 14704 14705 getDispatcher()->vkCmdResolveImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), 14706 reinterpret_cast<const VkResolveImageInfo2 *>( &resolveImageInfo ) ); 14707 } 14708 beginRendering(const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo) const14709 VULKAN_HPP_INLINE void CommandBuffer::beginRendering( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT 14710 { 14711 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRendering && "Function <vkCmdBeginRendering> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" ); 14712 14713 getDispatcher()->vkCmdBeginRendering( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ) ); 14714 } 14715 endRendering() const14716 VULKAN_HPP_INLINE void CommandBuffer::endRendering() const VULKAN_HPP_NOEXCEPT 14717 { 14718 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRendering && "Function <vkCmdEndRendering> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" ); 14719 14720 getDispatcher()->vkCmdEndRendering( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 14721 } 14722 setCullMode(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode) const14723 VULKAN_HPP_INLINE void CommandBuffer::setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT 14724 { 14725 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCullMode && 14726 "Function <vkCmdSetCullMode> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14727 14728 getDispatcher()->vkCmdSetCullMode( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCullModeFlags>( cullMode ) ); 14729 } 14730 setFrontFace(VULKAN_HPP_NAMESPACE::FrontFace frontFace) const14731 VULKAN_HPP_INLINE void CommandBuffer::setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT 14732 { 14733 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFrontFace && 14734 "Function <vkCmdSetFrontFace> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14735 14736 getDispatcher()->vkCmdSetFrontFace( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkFrontFace>( frontFace ) ); 14737 } 14738 setPrimitiveTopology(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology) const14739 VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT 14740 { 14741 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPrimitiveTopology && 14742 "Function <vkCmdSetPrimitiveTopology> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14743 14744 getDispatcher()->vkCmdSetPrimitiveTopology( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPrimitiveTopology>( primitiveTopology ) ); 14745 } 14746 14747 VULKAN_HPP_INLINE void setViewportWithCount(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports) const14748 CommandBuffer::setViewportWithCount( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT 14749 { 14750 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWithCount && 14751 "Function <vkCmdSetViewportWithCount> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14752 14753 getDispatcher()->vkCmdSetViewportWithCount( 14754 static_cast<VkCommandBuffer>( m_commandBuffer ), viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) ); 14755 } 14756 14757 VULKAN_HPP_INLINE void setScissorWithCount(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors) const14758 CommandBuffer::setScissorWithCount( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT 14759 { 14760 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetScissorWithCount && 14761 "Function <vkCmdSetScissorWithCount> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14762 14763 getDispatcher()->vkCmdSetScissorWithCount( 14764 static_cast<VkCommandBuffer>( m_commandBuffer ), scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) ); 14765 } 14766 bindVertexBuffers2(uint32_t firstBinding,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides) const14767 VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2( uint32_t firstBinding, 14768 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 14769 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 14770 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes, 14771 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides ) const 14772 { 14773 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindVertexBuffers2 && 14774 "Function <vkCmdBindVertexBuffers2> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14775 # ifdef VULKAN_HPP_NO_EXCEPTIONS 14776 VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); 14777 VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); 14778 VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() ); 14779 # else 14780 if ( buffers.size() != offsets.size() ) 14781 { 14782 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != offsets.size()" ); 14783 } 14784 if ( !sizes.empty() && buffers.size() != sizes.size() ) 14785 { 14786 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != sizes.size()" ); 14787 } 14788 if ( !strides.empty() && buffers.size() != strides.size() ) 14789 { 14790 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != strides.size()" ); 14791 } 14792 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 14793 14794 getDispatcher()->vkCmdBindVertexBuffers2( static_cast<VkCommandBuffer>( m_commandBuffer ), 14795 firstBinding, 14796 buffers.size(), 14797 reinterpret_cast<const VkBuffer *>( buffers.data() ), 14798 reinterpret_cast<const VkDeviceSize *>( offsets.data() ), 14799 reinterpret_cast<const VkDeviceSize *>( sizes.data() ), 14800 reinterpret_cast<const VkDeviceSize *>( strides.data() ) ); 14801 } 14802 setDepthTestEnable(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable) const14803 VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT 14804 { 14805 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthTestEnable && 14806 "Function <vkCmdSetDepthTestEnable> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14807 14808 getDispatcher()->vkCmdSetDepthTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthTestEnable ) ); 14809 } 14810 setDepthWriteEnable(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable) const14811 VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT 14812 { 14813 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthWriteEnable && 14814 "Function <vkCmdSetDepthWriteEnable> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14815 14816 getDispatcher()->vkCmdSetDepthWriteEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthWriteEnable ) ); 14817 } 14818 setDepthCompareOp(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp) const14819 VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT 14820 { 14821 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthCompareOp && 14822 "Function <vkCmdSetDepthCompareOp> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14823 14824 getDispatcher()->vkCmdSetDepthCompareOp( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCompareOp>( depthCompareOp ) ); 14825 } 14826 setDepthBoundsTestEnable(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable) const14827 VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT 14828 { 14829 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBoundsTestEnable && 14830 "Function <vkCmdSetDepthBoundsTestEnable> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14831 14832 getDispatcher()->vkCmdSetDepthBoundsTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBoundsTestEnable ) ); 14833 } 14834 setStencilTestEnable(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable) const14835 VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT 14836 { 14837 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilTestEnable && 14838 "Function <vkCmdSetStencilTestEnable> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14839 14840 getDispatcher()->vkCmdSetStencilTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stencilTestEnable ) ); 14841 } 14842 setStencilOp(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,VULKAN_HPP_NAMESPACE::StencilOp failOp,VULKAN_HPP_NAMESPACE::StencilOp passOp,VULKAN_HPP_NAMESPACE::StencilOp depthFailOp,VULKAN_HPP_NAMESPACE::CompareOp compareOp) const14843 VULKAN_HPP_INLINE void CommandBuffer::setStencilOp( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 14844 VULKAN_HPP_NAMESPACE::StencilOp failOp, 14845 VULKAN_HPP_NAMESPACE::StencilOp passOp, 14846 VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, 14847 VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT 14848 { 14849 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilOp && 14850 "Function <vkCmdSetStencilOp> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14851 14852 getDispatcher()->vkCmdSetStencilOp( static_cast<VkCommandBuffer>( m_commandBuffer ), 14853 static_cast<VkStencilFaceFlags>( faceMask ), 14854 static_cast<VkStencilOp>( failOp ), 14855 static_cast<VkStencilOp>( passOp ), 14856 static_cast<VkStencilOp>( depthFailOp ), 14857 static_cast<VkCompareOp>( compareOp ) ); 14858 } 14859 setRasterizerDiscardEnable(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable) const14860 VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT 14861 { 14862 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRasterizerDiscardEnable && 14863 "Function <vkCmdSetRasterizerDiscardEnable> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14864 14865 getDispatcher()->vkCmdSetRasterizerDiscardEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( rasterizerDiscardEnable ) ); 14866 } 14867 setDepthBiasEnable(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable) const14868 VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT 14869 { 14870 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBiasEnable && 14871 "Function <vkCmdSetDepthBiasEnable> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14872 14873 getDispatcher()->vkCmdSetDepthBiasEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBiasEnable ) ); 14874 } 14875 setPrimitiveRestartEnable(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable) const14876 VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT 14877 { 14878 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPrimitiveRestartEnable && 14879 "Function <vkCmdSetPrimitiveRestartEnable> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 14880 14881 getDispatcher()->vkCmdSetPrimitiveRestartEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( primitiveRestartEnable ) ); 14882 } 14883 14884 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info) const14885 Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT 14886 { 14887 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceBufferMemoryRequirements && 14888 "Function <vkGetDeviceBufferMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 14889 14890 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 14891 getDispatcher()->vkGetDeviceBufferMemoryRequirements( static_cast<VkDevice>( m_device ), 14892 reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), 14893 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 14894 14895 return memoryRequirements; 14896 } 14897 14898 template <typename X, typename Y, typename... Z> 14899 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info) const14900 Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT 14901 { 14902 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceBufferMemoryRequirements && 14903 "Function <vkGetDeviceBufferMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 14904 14905 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 14906 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 14907 getDispatcher()->vkGetDeviceBufferMemoryRequirements( static_cast<VkDevice>( m_device ), 14908 reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), 14909 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 14910 14911 return structureChain; 14912 } 14913 14914 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info) const14915 Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT 14916 { 14917 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageMemoryRequirements && 14918 "Function <vkGetDeviceImageMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 14919 14920 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 14921 getDispatcher()->vkGetDeviceImageMemoryRequirements( static_cast<VkDevice>( m_device ), 14922 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), 14923 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 14924 14925 return memoryRequirements; 14926 } 14927 14928 template <typename X, typename Y, typename... Z> 14929 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info) const14930 Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT 14931 { 14932 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageMemoryRequirements && 14933 "Function <vkGetDeviceImageMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 14934 14935 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 14936 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 14937 getDispatcher()->vkGetDeviceImageMemoryRequirements( static_cast<VkDevice>( m_device ), 14938 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), 14939 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 14940 14941 return structureChain; 14942 } 14943 14944 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> getImageSparseMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info) const14945 Device::getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const 14946 { 14947 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageSparseMemoryRequirements && 14948 "Function <vkGetDeviceImageSparseMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 14949 14950 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements; 14951 uint32_t sparseMemoryRequirementCount; 14952 getDispatcher()->vkGetDeviceImageSparseMemoryRequirements( 14953 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), &sparseMemoryRequirementCount, nullptr ); 14954 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 14955 getDispatcher()->vkGetDeviceImageSparseMemoryRequirements( static_cast<VkDevice>( m_device ), 14956 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), 14957 &sparseMemoryRequirementCount, 14958 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) ); 14959 14960 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 14961 if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() ) 14962 { 14963 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 14964 } 14965 return sparseMemoryRequirements; 14966 } 14967 14968 //=== VK_KHR_surface === 14969 getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const14970 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, 14971 VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 14972 { 14973 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR && "Function <vkGetPhysicalDeviceSurfaceSupportKHR> requires <VK_KHR_surface>" ); 14974 14975 VULKAN_HPP_NAMESPACE::Bool32 supported; 14976 VULKAN_HPP_NAMESPACE::Result result = 14977 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14978 queueFamilyIndex, 14979 static_cast<VkSurfaceKHR>( surface ), 14980 reinterpret_cast<VkBool32 *>( &supported ) ) ); 14981 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" ); 14982 14983 return supported; 14984 } 14985 14986 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const14987 PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 14988 { 14989 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR && 14990 "Function <vkGetPhysicalDeviceSurfaceCapabilitiesKHR> requires <VK_KHR_surface>" ); 14991 14992 VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities; 14993 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 14994 getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 14995 static_cast<VkSurfaceKHR>( surface ), 14996 reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) ) ); 14997 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" ); 14998 14999 return surfaceCapabilities; 15000 } 15001 15002 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR> getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const15003 PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 15004 { 15005 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR && "Function <vkGetPhysicalDeviceSurfaceFormatsKHR> requires <VK_KHR_surface>" ); 15006 15007 std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR> surfaceFormats; 15008 uint32_t surfaceFormatCount; 15009 VULKAN_HPP_NAMESPACE::Result result; 15010 do 15011 { 15012 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR( 15013 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) ); 15014 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount ) 15015 { 15016 surfaceFormats.resize( surfaceFormatCount ); 15017 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15018 getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15019 static_cast<VkSurfaceKHR>( surface ), 15020 &surfaceFormatCount, 15021 reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) ); 15022 } 15023 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15024 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" ); 15025 VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); 15026 if ( surfaceFormatCount < surfaceFormats.size() ) 15027 { 15028 surfaceFormats.resize( surfaceFormatCount ); 15029 } 15030 return surfaceFormats; 15031 } 15032 15033 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const15034 PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 15035 { 15036 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR && 15037 "Function <vkGetPhysicalDeviceSurfacePresentModesKHR> requires <VK_KHR_surface>" ); 15038 15039 std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> presentModes; 15040 uint32_t presentModeCount; 15041 VULKAN_HPP_NAMESPACE::Result result; 15042 do 15043 { 15044 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR( 15045 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) ); 15046 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount ) 15047 { 15048 presentModes.resize( presentModeCount ); 15049 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15050 getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15051 static_cast<VkSurfaceKHR>( surface ), 15052 &presentModeCount, 15053 reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) ); 15054 } 15055 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15056 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" ); 15057 VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); 15058 if ( presentModeCount < presentModes.size() ) 15059 { 15060 presentModes.resize( presentModeCount ); 15061 } 15062 return presentModes; 15063 } 15064 15065 //=== VK_KHR_swapchain === 15066 15067 VULKAN_HPP_NODISCARD 15068 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>::Type createSwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15069 Device::createSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo, 15070 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15071 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15072 { 15073 VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; 15074 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSwapchainKHR( 15075 static_cast<VkDevice>( m_device ), 15076 reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), 15077 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15078 reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) ); 15079 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15080 { 15081 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15082 return VULKAN_HPP_UNEXPECTED( result ); 15083 # else 15084 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSwapchainKHR" ); 15085 # endif 15086 } 15087 15088 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR( *this, *reinterpret_cast<VkSwapchainKHR *>( &swapchain ), allocator ); 15089 } 15090 getImages() const15091 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::Image> SwapchainKHR::getImages() const 15092 { 15093 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainImagesKHR && "Function <vkGetSwapchainImagesKHR> requires <VK_KHR_swapchain>" ); 15094 15095 std::vector<VULKAN_HPP_NAMESPACE::Image> swapchainImages; 15096 uint32_t swapchainImageCount; 15097 VULKAN_HPP_NAMESPACE::Result result; 15098 do 15099 { 15100 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSwapchainImagesKHR( 15101 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), &swapchainImageCount, nullptr ) ); 15102 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && swapchainImageCount ) 15103 { 15104 swapchainImages.resize( swapchainImageCount ); 15105 result = 15106 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSwapchainImagesKHR( static_cast<VkDevice>( m_device ), 15107 static_cast<VkSwapchainKHR>( m_swapchain ), 15108 &swapchainImageCount, 15109 reinterpret_cast<VkImage *>( swapchainImages.data() ) ) ); 15110 } 15111 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15112 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getImages" ); 15113 VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); 15114 if ( swapchainImageCount < swapchainImages.size() ) 15115 { 15116 swapchainImages.resize( swapchainImageCount ); 15117 } 15118 return swapchainImages; 15119 } 15120 15121 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) const15122 SwapchainKHR::acquireNextImage( uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence ) const 15123 { 15124 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImageKHR && "Function <vkAcquireNextImageKHR> requires <VK_KHR_swapchain>" ); 15125 15126 uint32_t imageIndex; 15127 VULKAN_HPP_NAMESPACE::Result result = 15128 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireNextImageKHR( static_cast<VkDevice>( m_device ), 15129 static_cast<VkSwapchainKHR>( m_swapchain ), 15130 timeout, 15131 static_cast<VkSemaphore>( semaphore ), 15132 static_cast<VkFence>( fence ), 15133 &imageIndex ) ); 15134 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 15135 VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireNextImage", 15136 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 15137 VULKAN_HPP_NAMESPACE::Result::eTimeout, 15138 VULKAN_HPP_NAMESPACE::Result::eNotReady, 15139 VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); 15140 15141 return std::make_pair( result, std::move( imageIndex ) ); 15142 } 15143 presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo) const15144 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo ) const 15145 { 15146 VULKAN_HPP_ASSERT( getDispatcher()->vkQueuePresentKHR && "Function <vkQueuePresentKHR> requires <VK_KHR_swapchain>" ); 15147 15148 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15149 getDispatcher()->vkQueuePresentKHR( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) ); 15150 VULKAN_HPP_NAMESPACE::detail::resultCheck( 15151 result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); 15152 15153 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 15154 } 15155 getGroupPresentCapabilitiesKHR() const15156 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR Device::getGroupPresentCapabilitiesKHR() const 15157 { 15158 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR && 15159 "Function <vkGetDeviceGroupPresentCapabilitiesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" ); 15160 15161 VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; 15162 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR( 15163 static_cast<VkDevice>( m_device ), reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) ); 15164 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" ); 15165 15166 return deviceGroupPresentCapabilities; 15167 } 15168 15169 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const15170 Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 15171 { 15172 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR && 15173 "Function <vkGetDeviceGroupSurfacePresentModesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" ); 15174 15175 VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; 15176 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR( 15177 static_cast<VkDevice>( m_device ), static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) ); 15178 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" ); 15179 15180 return modes; 15181 } 15182 15183 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::Rect2D> getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const15184 PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 15185 { 15186 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR && 15187 "Function <vkGetPhysicalDevicePresentRectanglesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" ); 15188 15189 std::vector<VULKAN_HPP_NAMESPACE::Rect2D> rects; 15190 uint32_t rectCount; 15191 VULKAN_HPP_NAMESPACE::Result result; 15192 do 15193 { 15194 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR( 15195 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) ); 15196 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && rectCount ) 15197 { 15198 rects.resize( rectCount ); 15199 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15200 getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15201 static_cast<VkSurfaceKHR>( surface ), 15202 &rectCount, 15203 reinterpret_cast<VkRect2D *>( rects.data() ) ) ); 15204 } 15205 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15206 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" ); 15207 VULKAN_HPP_ASSERT( rectCount <= rects.size() ); 15208 if ( rectCount < rects.size() ) 15209 { 15210 rects.resize( rectCount ); 15211 } 15212 return rects; 15213 } 15214 15215 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t> acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo) const15216 Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo ) const 15217 { 15218 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireNextImage2KHR && "Function <vkAcquireNextImage2KHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" ); 15219 15220 uint32_t imageIndex; 15221 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkAcquireNextImage2KHR( 15222 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex ) ); 15223 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 15224 VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR", 15225 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 15226 VULKAN_HPP_NAMESPACE::Result::eTimeout, 15227 VULKAN_HPP_NAMESPACE::Result::eNotReady, 15228 VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); 15229 15230 return std::make_pair( result, std::move( imageIndex ) ); 15231 } 15232 15233 //=== VK_KHR_display === 15234 getDisplayPropertiesKHR() const15235 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> PhysicalDevice::getDisplayPropertiesKHR() const 15236 { 15237 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR && 15238 "Function <vkGetPhysicalDeviceDisplayPropertiesKHR> requires <VK_KHR_display>" ); 15239 15240 std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> properties; 15241 uint32_t propertyCount; 15242 VULKAN_HPP_NAMESPACE::Result result; 15243 do 15244 { 15245 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15246 getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 15247 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 15248 { 15249 properties.resize( propertyCount ); 15250 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR( 15251 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) ); 15252 } 15253 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15254 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" ); 15255 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 15256 if ( propertyCount < properties.size() ) 15257 { 15258 properties.resize( propertyCount ); 15259 } 15260 return properties; 15261 } 15262 getDisplayPlanePropertiesKHR() const15263 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> PhysicalDevice::getDisplayPlanePropertiesKHR() const 15264 { 15265 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR && 15266 "Function <vkGetPhysicalDeviceDisplayPlanePropertiesKHR> requires <VK_KHR_display>" ); 15267 15268 std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> properties; 15269 uint32_t propertyCount; 15270 VULKAN_HPP_NAMESPACE::Result result; 15271 do 15272 { 15273 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15274 getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 15275 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 15276 { 15277 properties.resize( propertyCount ); 15278 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR( 15279 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) ); 15280 } 15281 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15282 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" ); 15283 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 15284 if ( propertyCount < properties.size() ) 15285 { 15286 properties.resize( propertyCount ); 15287 } 15288 return properties; 15289 } 15290 15291 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 15292 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>>::Type getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex) const15293 PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex ) const 15294 { 15295 std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR> displays; 15296 uint32_t displayCount; 15297 VULKAN_HPP_NAMESPACE::Result result; 15298 do 15299 { 15300 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15301 getDispatcher()->vkGetDisplayPlaneSupportedDisplaysKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), planeIndex, &displayCount, nullptr ) ); 15302 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount ) 15303 { 15304 displays.resize( displayCount ); 15305 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayPlaneSupportedDisplaysKHR( 15306 static_cast<VkPhysicalDevice>( m_physicalDevice ), planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) ); 15307 } 15308 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15309 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eIncomplete ) ) 15310 { 15311 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15312 return VULKAN_HPP_UNEXPECTED( result ); 15313 # else 15314 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); 15315 # endif 15316 } 15317 15318 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> displaysRAII; 15319 displaysRAII.reserve( displays.size() ); 15320 for ( auto & display : displays ) 15321 { 15322 displaysRAII.emplace_back( *this, *reinterpret_cast<VkDisplayKHR *>( &display ) ); 15323 } 15324 return displaysRAII; 15325 } 15326 getModeProperties() const15327 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> DisplayKHR::getModeProperties() const 15328 { 15329 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModePropertiesKHR && "Function <vkGetDisplayModePropertiesKHR> requires <VK_KHR_display>" ); 15330 15331 std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> properties; 15332 uint32_t propertyCount; 15333 VULKAN_HPP_NAMESPACE::Result result; 15334 do 15335 { 15336 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayModePropertiesKHR( 15337 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ), &propertyCount, nullptr ) ); 15338 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 15339 { 15340 properties.resize( propertyCount ); 15341 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15342 getDispatcher()->vkGetDisplayModePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15343 static_cast<VkDisplayKHR>( m_display ), 15344 &propertyCount, 15345 reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) ); 15346 } 15347 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15348 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties" ); 15349 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 15350 if ( propertyCount < properties.size() ) 15351 { 15352 properties.resize( propertyCount ); 15353 } 15354 return properties; 15355 } 15356 15357 VULKAN_HPP_NODISCARD 15358 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR>::Type createMode(VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15359 DisplayKHR::createMode( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & createInfo, 15360 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 15361 { 15362 VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; 15363 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDisplayModeKHR( 15364 static_cast<VkPhysicalDevice>( m_physicalDevice ), 15365 static_cast<VkDisplayKHR>( m_display ), 15366 reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ), 15367 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15368 reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) ); 15369 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15370 { 15371 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15372 return VULKAN_HPP_UNEXPECTED( result ); 15373 # else 15374 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "DisplayKHR::createMode" ); 15375 # endif 15376 } 15377 15378 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR( *this, *reinterpret_cast<VkDisplayModeKHR *>( &mode ) ); 15379 } 15380 15381 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR getDisplayPlaneCapabilities(uint32_t planeIndex) const15382 DisplayModeKHR::getDisplayPlaneCapabilities( uint32_t planeIndex ) const 15383 { 15384 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR && "Function <vkGetDisplayPlaneCapabilitiesKHR> requires <VK_KHR_display>" ); 15385 15386 VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities; 15387 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15388 getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15389 static_cast<VkDisplayModeKHR>( m_displayModeKHR ), 15390 planeIndex, 15391 reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) ) ); 15392 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayModeKHR::getDisplayPlaneCapabilities" ); 15393 15394 return capabilities; 15395 } 15396 15397 VULKAN_HPP_NODISCARD 15398 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createDisplayPlaneSurfaceKHR(VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15399 Instance::createDisplayPlaneSurfaceKHR( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & createInfo, 15400 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15401 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15402 { 15403 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 15404 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDisplayPlaneSurfaceKHR( 15405 static_cast<VkInstance>( m_instance ), 15406 reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ), 15407 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15408 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 15409 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15410 { 15411 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15412 return VULKAN_HPP_UNEXPECTED( result ); 15413 # else 15414 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDisplayPlaneSurfaceKHR" ); 15415 # endif 15416 } 15417 15418 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 15419 } 15420 15421 //=== VK_KHR_display_swapchain === 15422 15423 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 15424 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>>::Type createSharedSwapchainsKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15425 Device::createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos, 15426 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15427 { 15428 std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains( createInfos.size() ); 15429 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSharedSwapchainsKHR( 15430 static_cast<VkDevice>( m_device ), 15431 createInfos.size(), 15432 reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ), 15433 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15434 reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) ); 15435 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15436 { 15437 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15438 return VULKAN_HPP_UNEXPECTED( result ); 15439 # else 15440 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSharedSwapchainsKHR" ); 15441 # endif 15442 } 15443 15444 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR> swapchainsRAII; 15445 swapchainsRAII.reserve( swapchains.size() ); 15446 for ( auto & swapchain : swapchains ) 15447 { 15448 swapchainsRAII.emplace_back( *this, *reinterpret_cast<VkSwapchainKHR *>( &swapchain ), allocator ); 15449 } 15450 return swapchainsRAII; 15451 } 15452 15453 VULKAN_HPP_NODISCARD 15454 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>::Type createSharedSwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15455 Device::createSharedSwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & createInfo, 15456 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15457 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15458 { 15459 VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; 15460 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSharedSwapchainsKHR( 15461 static_cast<VkDevice>( m_device ), 15462 1, 15463 reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ), 15464 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15465 reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) ); 15466 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15467 { 15468 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15469 return VULKAN_HPP_UNEXPECTED( result ); 15470 # else 15471 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSharedSwapchainKHR" ); 15472 # endif 15473 } 15474 15475 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR( *this, *reinterpret_cast<VkSwapchainKHR *>( &swapchain ), allocator ); 15476 } 15477 15478 # if defined( VK_USE_PLATFORM_XLIB_KHR ) 15479 //=== VK_KHR_xlib_surface === 15480 15481 VULKAN_HPP_NODISCARD 15482 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createXlibSurfaceKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15483 Instance::createXlibSurfaceKHR( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & createInfo, 15484 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15485 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15486 { 15487 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 15488 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateXlibSurfaceKHR( 15489 static_cast<VkInstance>( m_instance ), 15490 reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ), 15491 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15492 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 15493 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15494 { 15495 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15496 return VULKAN_HPP_UNEXPECTED( result ); 15497 # else 15498 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createXlibSurfaceKHR" ); 15499 # endif 15500 } 15501 15502 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 15503 } 15504 15505 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID) const15506 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT 15507 { 15508 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR && 15509 "Function <vkGetPhysicalDeviceXlibPresentationSupportKHR> requires <VK_KHR_xlib_surface>" ); 15510 15511 VkBool32 result = 15512 getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &dpy, visualID ); 15513 15514 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result ); 15515 } 15516 # endif /*VK_USE_PLATFORM_XLIB_KHR*/ 15517 15518 # if defined( VK_USE_PLATFORM_XCB_KHR ) 15519 //=== VK_KHR_xcb_surface === 15520 15521 VULKAN_HPP_NODISCARD 15522 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createXcbSurfaceKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15523 Instance::createXcbSurfaceKHR( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & createInfo, 15524 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15525 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15526 { 15527 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 15528 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateXcbSurfaceKHR( 15529 static_cast<VkInstance>( m_instance ), 15530 reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ), 15531 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15532 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 15533 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15534 { 15535 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15536 return VULKAN_HPP_UNEXPECTED( result ); 15537 # else 15538 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createXcbSurfaceKHR" ); 15539 # endif 15540 } 15541 15542 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 15543 } 15544 getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id) const15545 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXcbPresentationSupportKHR( 15546 uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT 15547 { 15548 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR && 15549 "Function <vkGetPhysicalDeviceXcbPresentationSupportKHR> requires <VK_KHR_xcb_surface>" ); 15550 15551 VkBool32 result = getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR( 15552 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &connection, visual_id ); 15553 15554 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result ); 15555 } 15556 # endif /*VK_USE_PLATFORM_XCB_KHR*/ 15557 15558 # if defined( VK_USE_PLATFORM_WAYLAND_KHR ) 15559 //=== VK_KHR_wayland_surface === 15560 15561 VULKAN_HPP_NODISCARD 15562 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createWaylandSurfaceKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15563 Instance::createWaylandSurfaceKHR( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & createInfo, 15564 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15565 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15566 { 15567 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 15568 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateWaylandSurfaceKHR( 15569 static_cast<VkInstance>( m_instance ), 15570 reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ), 15571 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15572 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 15573 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15574 { 15575 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15576 return VULKAN_HPP_UNEXPECTED( result ); 15577 # else 15578 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createWaylandSurfaceKHR" ); 15579 # endif 15580 } 15581 15582 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 15583 } 15584 15585 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display) const15586 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display ) const VULKAN_HPP_NOEXCEPT 15587 { 15588 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR && 15589 "Function <vkGetPhysicalDeviceWaylandPresentationSupportKHR> requires <VK_KHR_wayland_surface>" ); 15590 15591 VkBool32 result = 15592 getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &display ); 15593 15594 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result ); 15595 } 15596 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ 15597 15598 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 15599 //=== VK_KHR_android_surface === 15600 15601 VULKAN_HPP_NODISCARD 15602 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createAndroidSurfaceKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15603 Instance::createAndroidSurfaceKHR( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & createInfo, 15604 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15605 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15606 { 15607 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 15608 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAndroidSurfaceKHR( 15609 static_cast<VkInstance>( m_instance ), 15610 reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ), 15611 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15612 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 15613 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15614 { 15615 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15616 return VULKAN_HPP_UNEXPECTED( result ); 15617 # else 15618 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createAndroidSurfaceKHR" ); 15619 # endif 15620 } 15621 15622 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 15623 } 15624 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 15625 15626 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 15627 //=== VK_KHR_win32_surface === 15628 15629 VULKAN_HPP_NODISCARD 15630 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createWin32SurfaceKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15631 Instance::createWin32SurfaceKHR( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & createInfo, 15632 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15633 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15634 { 15635 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 15636 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateWin32SurfaceKHR( 15637 static_cast<VkInstance>( m_instance ), 15638 reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ), 15639 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15640 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 15641 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15642 { 15643 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15644 return VULKAN_HPP_UNEXPECTED( result ); 15645 # else 15646 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createWin32SurfaceKHR" ); 15647 # endif 15648 } 15649 15650 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 15651 } 15652 15653 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getWin32PresentationSupportKHR(uint32_t queueFamilyIndex) const15654 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT 15655 { 15656 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR && 15657 "Function <vkGetPhysicalDeviceWin32PresentationSupportKHR> requires <VK_KHR_win32_surface>" ); 15658 15659 VkBool32 result = getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex ); 15660 15661 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result ); 15662 } 15663 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 15664 15665 //=== VK_EXT_debug_report === 15666 15667 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 15668 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT>::Type createDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15669 Instance::createDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & createInfo, 15670 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15671 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15672 { 15673 VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; 15674 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDebugReportCallbackEXT( 15675 static_cast<VkInstance>( m_instance ), 15676 reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ), 15677 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15678 reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) ); 15679 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15680 { 15681 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15682 return VULKAN_HPP_UNEXPECTED( result ); 15683 # else 15684 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDebugReportCallbackEXT" ); 15685 # endif 15686 } 15687 15688 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT( 15689 *this, *reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ), allocator ); 15690 } 15691 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) const15692 VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, 15693 VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, 15694 uint64_t object, 15695 size_t location, 15696 int32_t messageCode, 15697 const std::string & layerPrefix, 15698 const std::string & message ) const VULKAN_HPP_NOEXCEPT 15699 { 15700 VULKAN_HPP_ASSERT( getDispatcher()->vkDebugReportMessageEXT && "Function <vkDebugReportMessageEXT> requires <VK_EXT_debug_report>" ); 15701 15702 getDispatcher()->vkDebugReportMessageEXT( static_cast<VkInstance>( m_instance ), 15703 static_cast<VkDebugReportFlagsEXT>( flags ), 15704 static_cast<VkDebugReportObjectTypeEXT>( objectType_ ), 15705 object, 15706 location, 15707 messageCode, 15708 layerPrefix.c_str(), 15709 message.c_str() ); 15710 } 15711 15712 //=== VK_EXT_debug_marker === 15713 debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo) const15714 VULKAN_HPP_INLINE void Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo ) const 15715 { 15716 VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectTagEXT && "Function <vkDebugMarkerSetObjectTagEXT> requires <VK_EXT_debug_marker>" ); 15717 15718 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDebugMarkerSetObjectTagEXT( 15719 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) ); 15720 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" ); 15721 } 15722 debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo) const15723 VULKAN_HPP_INLINE void Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo ) const 15724 { 15725 VULKAN_HPP_ASSERT( getDispatcher()->vkDebugMarkerSetObjectNameEXT && "Function <vkDebugMarkerSetObjectNameEXT> requires <VK_EXT_debug_marker>" ); 15726 15727 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDebugMarkerSetObjectNameEXT( 15728 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) ); 15729 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" ); 15730 } 15731 debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo) const15732 VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT 15733 { 15734 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerBeginEXT && "Function <vkCmdDebugMarkerBeginEXT> requires <VK_EXT_debug_marker>" ); 15735 15736 getDispatcher()->vkCmdDebugMarkerBeginEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15737 reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) ); 15738 } 15739 debugMarkerEndEXT() const15740 VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT 15741 { 15742 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerEndEXT && "Function <vkCmdDebugMarkerEndEXT> requires <VK_EXT_debug_marker>" ); 15743 15744 getDispatcher()->vkCmdDebugMarkerEndEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 15745 } 15746 debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo) const15747 VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo ) const VULKAN_HPP_NOEXCEPT 15748 { 15749 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDebugMarkerInsertEXT && "Function <vkCmdDebugMarkerInsertEXT> requires <VK_EXT_debug_marker>" ); 15750 15751 getDispatcher()->vkCmdDebugMarkerInsertEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15752 reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) ); 15753 } 15754 15755 //=== VK_KHR_video_queue === 15756 15757 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile) const15758 PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const 15759 { 15760 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR && 15761 "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> requires <VK_KHR_video_queue>" ); 15762 15763 VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR capabilities; 15764 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15765 getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15766 reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ), 15767 reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) ); 15768 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); 15769 15770 return capabilities; 15771 } 15772 15773 template <typename X, typename Y, typename... Z> 15774 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile) const15775 PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile ) const 15776 { 15777 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR && 15778 "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> requires <VK_KHR_video_queue>" ); 15779 15780 StructureChain<X, Y, Z...> structureChain; 15781 VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR & capabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>(); 15782 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15783 getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15784 reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ), 15785 reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) ); 15786 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" ); 15787 15788 return structureChain; 15789 } 15790 15791 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo) const15792 PhysicalDevice::getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo ) const 15793 { 15794 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR && 15795 "Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> requires <VK_KHR_video_queue>" ); 15796 15797 std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> videoFormatProperties; 15798 uint32_t videoFormatPropertyCount; 15799 VULKAN_HPP_NAMESPACE::Result result; 15800 do 15801 { 15802 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15803 getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15804 reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), 15805 &videoFormatPropertyCount, 15806 nullptr ) ); 15807 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount ) 15808 { 15809 videoFormatProperties.resize( videoFormatPropertyCount ); 15810 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15811 getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 15812 reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), 15813 &videoFormatPropertyCount, 15814 reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) ); 15815 } 15816 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15817 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" ); 15818 VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() ); 15819 if ( videoFormatPropertyCount < videoFormatProperties.size() ) 15820 { 15821 videoFormatProperties.resize( videoFormatPropertyCount ); 15822 } 15823 return videoFormatProperties; 15824 } 15825 15826 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 15827 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR>::Type createVideoSessionKHR(VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15828 Device::createVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const & createInfo, 15829 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15830 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15831 { 15832 VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession; 15833 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateVideoSessionKHR( 15834 static_cast<VkDevice>( m_device ), 15835 reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( &createInfo ), 15836 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15837 reinterpret_cast<VkVideoSessionKHR *>( &videoSession ) ) ); 15838 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15839 { 15840 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15841 return VULKAN_HPP_UNEXPECTED( result ); 15842 # else 15843 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createVideoSessionKHR" ); 15844 # endif 15845 } 15846 15847 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR( *this, *reinterpret_cast<VkVideoSessionKHR *>( &videoSession ), allocator ); 15848 } 15849 getMemoryRequirements() const15850 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR> VideoSessionKHR::getMemoryRequirements() const 15851 { 15852 VULKAN_HPP_ASSERT( getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR && 15853 "Function <vkGetVideoSessionMemoryRequirementsKHR> requires <VK_KHR_video_queue>" ); 15854 15855 std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR> memoryRequirements; 15856 uint32_t memoryRequirementsCount; 15857 VULKAN_HPP_NAMESPACE::Result result; 15858 do 15859 { 15860 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR( 15861 static_cast<VkDevice>( m_device ), static_cast<VkVideoSessionKHR>( m_videoSession ), &memoryRequirementsCount, nullptr ) ); 15862 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && memoryRequirementsCount ) 15863 { 15864 memoryRequirements.resize( memoryRequirementsCount ); 15865 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15866 getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR( static_cast<VkDevice>( m_device ), 15867 static_cast<VkVideoSessionKHR>( m_videoSession ), 15868 &memoryRequirementsCount, 15869 reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) ) ); 15870 } 15871 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 15872 15873 VULKAN_HPP_ASSERT( memoryRequirementsCount <= memoryRequirements.size() ); 15874 if ( memoryRequirementsCount < memoryRequirements.size() ) 15875 { 15876 memoryRequirements.resize( memoryRequirementsCount ); 15877 } 15878 return memoryRequirements; 15879 } 15880 bindMemory(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR> const & bindSessionMemoryInfos) const15881 VULKAN_HPP_INLINE void VideoSessionKHR::bindMemory( 15882 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR> const & bindSessionMemoryInfos ) const 15883 { 15884 VULKAN_HPP_ASSERT( getDispatcher()->vkBindVideoSessionMemoryKHR && "Function <vkBindVideoSessionMemoryKHR> requires <VK_KHR_video_queue>" ); 15885 15886 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15887 getDispatcher()->vkBindVideoSessionMemoryKHR( static_cast<VkDevice>( m_device ), 15888 static_cast<VkVideoSessionKHR>( m_videoSession ), 15889 bindSessionMemoryInfos.size(), 15890 reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( bindSessionMemoryInfos.data() ) ) ); 15891 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::bindMemory" ); 15892 } 15893 15894 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 15895 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR>::Type createVideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const15896 Device::createVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const & createInfo, 15897 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 15898 VULKAN_HPP_RAII_CREATE_NOEXCEPT 15899 { 15900 VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters; 15901 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateVideoSessionParametersKHR( 15902 static_cast<VkDevice>( m_device ), 15903 reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( &createInfo ), 15904 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 15905 reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ) ) ); 15906 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 15907 { 15908 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 15909 return VULKAN_HPP_UNEXPECTED( result ); 15910 # else 15911 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createVideoSessionParametersKHR" ); 15912 # endif 15913 } 15914 15915 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR( 15916 *this, *reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ), allocator ); 15917 } 15918 update(const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo) const15919 VULKAN_HPP_INLINE void VideoSessionParametersKHR::update( const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo ) const 15920 { 15921 VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateVideoSessionParametersKHR && "Function <vkUpdateVideoSessionParametersKHR> requires <VK_KHR_video_queue>" ); 15922 15923 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 15924 getDispatcher()->vkUpdateVideoSessionParametersKHR( static_cast<VkDevice>( m_device ), 15925 static_cast<VkVideoSessionParametersKHR>( m_videoSessionParameters ), 15926 reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( &updateInfo ) ) ); 15927 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionParametersKHR::update" ); 15928 } 15929 beginVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo) const15930 VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo ) const VULKAN_HPP_NOEXCEPT 15931 { 15932 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginVideoCodingKHR && "Function <vkCmdBeginVideoCodingKHR> requires <VK_KHR_video_queue>" ); 15933 15934 getDispatcher()->vkCmdBeginVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15935 reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( &beginInfo ) ); 15936 } 15937 endVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo) const15938 VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo ) const VULKAN_HPP_NOEXCEPT 15939 { 15940 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndVideoCodingKHR && "Function <vkCmdEndVideoCodingKHR> requires <VK_KHR_video_queue>" ); 15941 15942 getDispatcher()->vkCmdEndVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15943 reinterpret_cast<const VkVideoEndCodingInfoKHR *>( &endCodingInfo ) ); 15944 } 15945 15946 VULKAN_HPP_INLINE void controlVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo) const15947 CommandBuffer::controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo ) const VULKAN_HPP_NOEXCEPT 15948 { 15949 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdControlVideoCodingKHR && "Function <vkCmdControlVideoCodingKHR> requires <VK_KHR_video_queue>" ); 15950 15951 getDispatcher()->vkCmdControlVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 15952 reinterpret_cast<const VkVideoCodingControlInfoKHR *>( &codingControlInfo ) ); 15953 } 15954 15955 //=== VK_KHR_video_decode_queue === 15956 decodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo) const15957 VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo ) const VULKAN_HPP_NOEXCEPT 15958 { 15959 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecodeVideoKHR && "Function <vkCmdDecodeVideoKHR> requires <VK_KHR_video_decode_queue>" ); 15960 15961 getDispatcher()->vkCmdDecodeVideoKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkVideoDecodeInfoKHR *>( &decodeInfo ) ); 15962 } 15963 15964 //=== VK_EXT_transform_feedback === 15965 15966 VULKAN_HPP_INLINE void bindTransformFeedbackBuffersEXT(uint32_t firstBinding,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes) const15967 CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, 15968 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 15969 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 15970 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes ) const 15971 { 15972 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT && 15973 "Function <vkCmdBindTransformFeedbackBuffersEXT> requires <VK_EXT_transform_feedback>" ); 15974 # ifdef VULKAN_HPP_NO_EXCEPTIONS 15975 VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); 15976 VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); 15977 # else 15978 if ( buffers.size() != offsets.size() ) 15979 { 15980 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" ); 15981 } 15982 if ( !sizes.empty() && buffers.size() != sizes.size() ) 15983 { 15984 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" ); 15985 } 15986 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 15987 15988 getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 15989 firstBinding, 15990 buffers.size(), 15991 reinterpret_cast<const VkBuffer *>( buffers.data() ), 15992 reinterpret_cast<const VkDeviceSize *>( offsets.data() ), 15993 reinterpret_cast<const VkDeviceSize *>( sizes.data() ) ); 15994 } 15995 15996 VULKAN_HPP_INLINE void beginTransformFeedbackEXT(uint32_t firstCounterBuffer,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets) const15997 CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, 15998 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, 15999 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets ) const 16000 { 16001 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginTransformFeedbackEXT && "Function <vkCmdBeginTransformFeedbackEXT> requires <VK_EXT_transform_feedback>" ); 16002 # ifdef VULKAN_HPP_NO_EXCEPTIONS 16003 VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); 16004 # else 16005 if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) 16006 { 16007 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); 16008 } 16009 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 16010 16011 getDispatcher()->vkCmdBeginTransformFeedbackEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16012 firstCounterBuffer, 16013 counterBuffers.size(), 16014 reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), 16015 reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) ); 16016 } 16017 16018 VULKAN_HPP_INLINE void endTransformFeedbackEXT(uint32_t firstCounterBuffer,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets) const16019 CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, 16020 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers, 16021 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets ) const 16022 { 16023 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndTransformFeedbackEXT && "Function <vkCmdEndTransformFeedbackEXT> requires <VK_EXT_transform_feedback>" ); 16024 # ifdef VULKAN_HPP_NO_EXCEPTIONS 16025 VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); 16026 # else 16027 if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) 16028 { 16029 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); 16030 } 16031 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 16032 16033 getDispatcher()->vkCmdEndTransformFeedbackEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16034 firstCounterBuffer, 16035 counterBuffers.size(), 16036 reinterpret_cast<const VkBuffer *>( counterBuffers.data() ), 16037 reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) ); 16038 } 16039 beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index) const16040 VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, 16041 uint32_t query, 16042 VULKAN_HPP_NAMESPACE::QueryControlFlags flags, 16043 uint32_t index ) const VULKAN_HPP_NOEXCEPT 16044 { 16045 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginQueryIndexedEXT && "Function <vkCmdBeginQueryIndexedEXT> requires <VK_EXT_transform_feedback>" ); 16046 16047 getDispatcher()->vkCmdBeginQueryIndexedEXT( 16048 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index ); 16049 } 16050 16051 VULKAN_HPP_INLINE void endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index) const16052 CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT 16053 { 16054 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndQueryIndexedEXT && "Function <vkCmdEndQueryIndexedEXT> requires <VK_EXT_transform_feedback>" ); 16055 16056 getDispatcher()->vkCmdEndQueryIndexedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, index ); 16057 } 16058 drawIndirectByteCountEXT(uint32_t instanceCount,uint32_t firstInstance,VULKAN_HPP_NAMESPACE::Buffer counterBuffer,VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride) const16059 VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, 16060 uint32_t firstInstance, 16061 VULKAN_HPP_NAMESPACE::Buffer counterBuffer, 16062 VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, 16063 uint32_t counterOffset, 16064 uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT 16065 { 16066 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectByteCountEXT && "Function <vkCmdDrawIndirectByteCountEXT> requires <VK_EXT_transform_feedback>" ); 16067 16068 getDispatcher()->vkCmdDrawIndirectByteCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16069 instanceCount, 16070 firstInstance, 16071 static_cast<VkBuffer>( counterBuffer ), 16072 static_cast<VkDeviceSize>( counterBufferOffset ), 16073 counterOffset, 16074 vertexStride ); 16075 } 16076 16077 //=== VK_NVX_binary_import === 16078 16079 VULKAN_HPP_NODISCARD 16080 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX>::Type createCuModuleNVX(VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const16081 Device::createCuModuleNVX( VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const & createInfo, 16082 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 16083 VULKAN_HPP_RAII_CREATE_NOEXCEPT 16084 { 16085 VULKAN_HPP_NAMESPACE::CuModuleNVX module; 16086 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCuModuleNVX( 16087 static_cast<VkDevice>( m_device ), 16088 reinterpret_cast<const VkCuModuleCreateInfoNVX *>( &createInfo ), 16089 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 16090 reinterpret_cast<VkCuModuleNVX *>( &module ) ) ); 16091 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16092 { 16093 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 16094 return VULKAN_HPP_UNEXPECTED( result ); 16095 # else 16096 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCuModuleNVX" ); 16097 # endif 16098 } 16099 16100 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX( *this, *reinterpret_cast<VkCuModuleNVX *>( &module ), allocator ); 16101 } 16102 16103 VULKAN_HPP_NODISCARD 16104 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX>::Type createCuFunctionNVX(VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const16105 Device::createCuFunctionNVX( VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & createInfo, 16106 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 16107 VULKAN_HPP_RAII_CREATE_NOEXCEPT 16108 { 16109 VULKAN_HPP_NAMESPACE::CuFunctionNVX function; 16110 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCuFunctionNVX( 16111 static_cast<VkDevice>( m_device ), 16112 reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( &createInfo ), 16113 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 16114 reinterpret_cast<VkCuFunctionNVX *>( &function ) ) ); 16115 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16116 { 16117 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 16118 return VULKAN_HPP_UNEXPECTED( result ); 16119 # else 16120 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCuFunctionNVX" ); 16121 # endif 16122 } 16123 16124 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX( *this, *reinterpret_cast<VkCuFunctionNVX *>( &function ), allocator ); 16125 } 16126 cuLaunchKernelNVX(const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo) const16127 VULKAN_HPP_INLINE void CommandBuffer::cuLaunchKernelNVX( const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo ) const VULKAN_HPP_NOEXCEPT 16128 { 16129 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCuLaunchKernelNVX && "Function <vkCmdCuLaunchKernelNVX> requires <VK_NVX_binary_import>" ); 16130 16131 getDispatcher()->vkCmdCuLaunchKernelNVX( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCuLaunchInfoNVX *>( &launchInfo ) ); 16132 } 16133 16134 //=== VK_NVX_image_view_handle === 16135 16136 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info) const16137 Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info ) const VULKAN_HPP_NOEXCEPT 16138 { 16139 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewHandleNVX && "Function <vkGetImageViewHandleNVX> requires <VK_NVX_image_view_handle>" ); 16140 16141 uint32_t result = 16142 getDispatcher()->vkGetImageViewHandleNVX( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) ); 16143 16144 return result; 16145 } 16146 getAddressNVX() const16147 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX ImageView::getAddressNVX() const 16148 { 16149 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewAddressNVX && "Function <vkGetImageViewAddressNVX> requires <VK_NVX_image_view_handle>" ); 16150 16151 VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties; 16152 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageViewAddressNVX( 16153 static_cast<VkDevice>( m_device ), static_cast<VkImageView>( m_imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) ) ); 16154 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ImageView::getAddressNVX" ); 16155 16156 return properties; 16157 } 16158 16159 //=== VK_AMD_draw_indirect_count === 16160 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) const16161 VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, 16162 VULKAN_HPP_NAMESPACE::DeviceSize offset, 16163 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 16164 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 16165 uint32_t maxDrawCount, 16166 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 16167 { 16168 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectCountAMD && 16169 "Function <vkCmdDrawIndirectCountAMD> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" ); 16170 16171 getDispatcher()->vkCmdDrawIndirectCountAMD( static_cast<VkCommandBuffer>( m_commandBuffer ), 16172 static_cast<VkBuffer>( buffer ), 16173 static_cast<VkDeviceSize>( offset ), 16174 static_cast<VkBuffer>( countBuffer ), 16175 static_cast<VkDeviceSize>( countBufferOffset ), 16176 maxDrawCount, 16177 stride ); 16178 } 16179 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) const16180 VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, 16181 VULKAN_HPP_NAMESPACE::DeviceSize offset, 16182 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 16183 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 16184 uint32_t maxDrawCount, 16185 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 16186 { 16187 VULKAN_HPP_ASSERT( 16188 getDispatcher()->vkCmdDrawIndexedIndirectCountAMD && 16189 "Function <vkCmdDrawIndexedIndirectCountAMD> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" ); 16190 16191 getDispatcher()->vkCmdDrawIndexedIndirectCountAMD( static_cast<VkCommandBuffer>( m_commandBuffer ), 16192 static_cast<VkBuffer>( buffer ), 16193 static_cast<VkDeviceSize>( offset ), 16194 static_cast<VkBuffer>( countBuffer ), 16195 static_cast<VkDeviceSize>( countBufferOffset ), 16196 maxDrawCount, 16197 stride ); 16198 } 16199 16200 //=== VK_AMD_shader_info === 16201 getShaderInfoAMD(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType) const16202 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> Pipeline::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, 16203 VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType ) const 16204 { 16205 VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderInfoAMD && "Function <vkGetShaderInfoAMD> requires <VK_AMD_shader_info>" ); 16206 16207 std::vector<uint8_t> info; 16208 size_t infoSize; 16209 VULKAN_HPP_NAMESPACE::Result result; 16210 do 16211 { 16212 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ), 16213 static_cast<VkPipeline>( m_pipeline ), 16214 static_cast<VkShaderStageFlagBits>( shaderStage ), 16215 static_cast<VkShaderInfoTypeAMD>( infoType ), 16216 &infoSize, 16217 nullptr ) ); 16218 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && infoSize ) 16219 { 16220 info.resize( infoSize ); 16221 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ), 16222 static_cast<VkPipeline>( m_pipeline ), 16223 static_cast<VkShaderStageFlagBits>( shaderStage ), 16224 static_cast<VkShaderInfoTypeAMD>( infoType ), 16225 &infoSize, 16226 reinterpret_cast<void *>( info.data() ) ) ); 16227 } 16228 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 16229 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getShaderInfoAMD" ); 16230 VULKAN_HPP_ASSERT( infoSize <= info.size() ); 16231 if ( infoSize < info.size() ) 16232 { 16233 info.resize( infoSize ); 16234 } 16235 return info; 16236 } 16237 16238 //=== VK_KHR_dynamic_rendering === 16239 beginRenderingKHR(const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo) const16240 VULKAN_HPP_INLINE void CommandBuffer::beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT 16241 { 16242 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderingKHR && 16243 "Function <vkCmdBeginRenderingKHR> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" ); 16244 16245 getDispatcher()->vkCmdBeginRenderingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ) ); 16246 } 16247 endRenderingKHR() const16248 VULKAN_HPP_INLINE void CommandBuffer::endRenderingKHR() const VULKAN_HPP_NOEXCEPT 16249 { 16250 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderingKHR && "Function <vkCmdEndRenderingKHR> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" ); 16251 16252 getDispatcher()->vkCmdEndRenderingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 16253 } 16254 16255 # if defined( VK_USE_PLATFORM_GGP ) 16256 //=== VK_GGP_stream_descriptor_surface === 16257 16258 VULKAN_HPP_NODISCARD 16259 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createStreamDescriptorSurfaceGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const16260 Instance::createStreamDescriptorSurfaceGGP( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & createInfo, 16261 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 16262 VULKAN_HPP_RAII_CREATE_NOEXCEPT 16263 { 16264 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 16265 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateStreamDescriptorSurfaceGGP( 16266 static_cast<VkInstance>( m_instance ), 16267 reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ), 16268 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 16269 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 16270 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16271 { 16272 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 16273 return VULKAN_HPP_UNEXPECTED( result ); 16274 # else 16275 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createStreamDescriptorSurfaceGGP" ); 16276 # endif 16277 } 16278 16279 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 16280 } 16281 # endif /*VK_USE_PLATFORM_GGP*/ 16282 16283 //=== VK_NV_external_memory_capabilities === 16284 16285 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) const16286 PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, 16287 VULKAN_HPP_NAMESPACE::ImageType type, 16288 VULKAN_HPP_NAMESPACE::ImageTiling tiling, 16289 VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, 16290 VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, 16291 VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType ) const 16292 { 16293 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV && 16294 "Function <vkGetPhysicalDeviceExternalImageFormatPropertiesNV> requires <VK_NV_external_memory_capabilities>" ); 16295 16296 VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties; 16297 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV( 16298 static_cast<VkPhysicalDevice>( m_physicalDevice ), 16299 static_cast<VkFormat>( format ), 16300 static_cast<VkImageType>( type ), 16301 static_cast<VkImageTiling>( tiling ), 16302 static_cast<VkImageUsageFlags>( usage ), 16303 static_cast<VkImageCreateFlags>( flags ), 16304 static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ), 16305 reinterpret_cast<VkExternalImageFormatPropertiesNV *>( &externalImageFormatProperties ) ) ); 16306 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" ); 16307 16308 return externalImageFormatProperties; 16309 } 16310 16311 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 16312 //=== VK_NV_external_memory_win32 === 16313 getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType) const16314 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE DeviceMemory::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType ) const 16315 { 16316 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleNV && "Function <vkGetMemoryWin32HandleNV> requires <VK_NV_external_memory_win32>" ); 16317 16318 HANDLE handle; 16319 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryWin32HandleNV( 16320 static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) ); 16321 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::getMemoryWin32HandleNV" ); 16322 16323 return handle; 16324 } 16325 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 16326 16327 //=== VK_KHR_get_physical_device_properties2 === 16328 getFeatures2KHR() const16329 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT 16330 { 16331 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures2KHR && 16332 "Function <vkGetPhysicalDeviceFeatures2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16333 16334 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; 16335 getDispatcher()->vkGetPhysicalDeviceFeatures2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16336 reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) ); 16337 16338 return features; 16339 } 16340 16341 template <typename X, typename Y, typename... Z> getFeatures2KHR() const16342 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT 16343 { 16344 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFeatures2KHR && 16345 "Function <vkGetPhysicalDeviceFeatures2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16346 16347 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 16348 VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>(); 16349 getDispatcher()->vkGetPhysicalDeviceFeatures2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16350 reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) ); 16351 16352 return structureChain; 16353 } 16354 getProperties2KHR() const16355 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT 16356 { 16357 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties2KHR && 16358 "Function <vkGetPhysicalDeviceProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16359 16360 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; 16361 getDispatcher()->vkGetPhysicalDeviceProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16362 reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) ); 16363 16364 return properties; 16365 } 16366 16367 template <typename X, typename Y, typename... Z> getProperties2KHR() const16368 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT 16369 { 16370 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceProperties2KHR && 16371 "Function <vkGetPhysicalDeviceProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16372 16373 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 16374 VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>(); 16375 getDispatcher()->vkGetPhysicalDeviceProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16376 reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) ); 16377 16378 return structureChain; 16379 } 16380 16381 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format) const16382 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 16383 { 16384 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR && 16385 "Function <vkGetPhysicalDeviceFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16386 16387 VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; 16388 getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR( 16389 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) ); 16390 16391 return formatProperties; 16392 } 16393 16394 template <typename X, typename Y, typename... Z> 16395 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format) const16396 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format ) const VULKAN_HPP_NOEXCEPT 16397 { 16398 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR && 16399 "Function <vkGetPhysicalDeviceFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16400 16401 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 16402 VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>(); 16403 getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR( 16404 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) ); 16405 16406 return structureChain; 16407 } 16408 16409 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties2 getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo) const16410 PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const 16411 { 16412 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR && 16413 "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16414 16415 VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; 16416 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16417 getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16418 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), 16419 reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) ); 16420 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); 16421 16422 return imageFormatProperties; 16423 } 16424 16425 template <typename X, typename Y, typename... Z> 16426 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo) const16427 PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo ) const 16428 { 16429 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR && 16430 "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16431 16432 StructureChain<X, Y, Z...> structureChain; 16433 VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>(); 16434 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16435 getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16436 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ), 16437 reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) ); 16438 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); 16439 16440 return structureChain; 16441 } 16442 getQueueFamilyProperties2KHR() const16443 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> PhysicalDevice::getQueueFamilyProperties2KHR() const 16444 { 16445 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR && 16446 "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16447 16448 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties; 16449 uint32_t queueFamilyPropertyCount; 16450 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 16451 queueFamilyProperties.resize( queueFamilyPropertyCount ); 16452 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16453 &queueFamilyPropertyCount, 16454 reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) ); 16455 16456 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 16457 if ( queueFamilyPropertyCount < queueFamilyProperties.size() ) 16458 { 16459 queueFamilyProperties.resize( queueFamilyPropertyCount ); 16460 } 16461 return queueFamilyProperties; 16462 } 16463 16464 template <typename StructureChain> getQueueFamilyProperties2KHR() const16465 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> PhysicalDevice::getQueueFamilyProperties2KHR() const 16466 { 16467 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR && 16468 "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16469 16470 std::vector<StructureChain> structureChains; 16471 std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties; 16472 uint32_t queueFamilyPropertyCount; 16473 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &queueFamilyPropertyCount, nullptr ); 16474 structureChains.resize( queueFamilyPropertyCount ); 16475 queueFamilyProperties.resize( queueFamilyPropertyCount ); 16476 for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) 16477 { 16478 queueFamilyProperties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext; 16479 } 16480 getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16481 &queueFamilyPropertyCount, 16482 reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) ); 16483 16484 VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); 16485 if ( queueFamilyPropertyCount < queueFamilyProperties.size() ) 16486 { 16487 structureChains.resize( queueFamilyPropertyCount ); 16488 } 16489 for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) 16490 { 16491 structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i]; 16492 } 16493 return structureChains; 16494 } 16495 16496 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR() const16497 PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT 16498 { 16499 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR && 16500 "Function <vkGetPhysicalDeviceMemoryProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16501 16502 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; 16503 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16504 reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) ); 16505 16506 return memoryProperties; 16507 } 16508 16509 template <typename X, typename Y, typename... Z> getMemoryProperties2KHR() const16510 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT 16511 { 16512 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR && 16513 "Function <vkGetPhysicalDeviceMemoryProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16514 16515 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 16516 VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = 16517 structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>(); 16518 getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16519 reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) ); 16520 16521 return structureChain; 16522 } 16523 16524 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo) const16525 PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo ) const 16526 { 16527 VULKAN_HPP_ASSERT( 16528 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR && 16529 "Function <vkGetPhysicalDeviceSparseImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" ); 16530 16531 std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> properties; 16532 uint32_t propertyCount; 16533 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16534 reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), 16535 &propertyCount, 16536 nullptr ); 16537 properties.resize( propertyCount ); 16538 getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16539 reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), 16540 &propertyCount, 16541 reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) ); 16542 16543 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 16544 if ( propertyCount < properties.size() ) 16545 { 16546 properties.resize( propertyCount ); 16547 } 16548 return properties; 16549 } 16550 16551 //=== VK_KHR_device_group === 16552 16553 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex) const16554 Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex ) const VULKAN_HPP_NOEXCEPT 16555 { 16556 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupPeerMemoryFeaturesKHR && 16557 "Function <vkGetDeviceGroupPeerMemoryFeaturesKHR> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" ); 16558 16559 VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; 16560 getDispatcher()->vkGetDeviceGroupPeerMemoryFeaturesKHR( static_cast<VkDevice>( m_device ), 16561 heapIndex, 16562 localDeviceIndex, 16563 remoteDeviceIndex, 16564 reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) ); 16565 16566 return peerMemoryFeatures; 16567 } 16568 setDeviceMaskKHR(uint32_t deviceMask) const16569 VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT 16570 { 16571 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDeviceMaskKHR && "Function <vkCmdSetDeviceMaskKHR> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" ); 16572 16573 getDispatcher()->vkCmdSetDeviceMaskKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), deviceMask ); 16574 } 16575 dispatchBaseKHR(uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const16576 VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, 16577 uint32_t baseGroupY, 16578 uint32_t baseGroupZ, 16579 uint32_t groupCountX, 16580 uint32_t groupCountY, 16581 uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT 16582 { 16583 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchBaseKHR && "Function <vkCmdDispatchBaseKHR> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" ); 16584 16585 getDispatcher()->vkCmdDispatchBaseKHR( 16586 static_cast<VkCommandBuffer>( m_commandBuffer ), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); 16587 } 16588 16589 # if defined( VK_USE_PLATFORM_VI_NN ) 16590 //=== VK_NN_vi_surface === 16591 16592 VULKAN_HPP_NODISCARD 16593 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createViSurfaceNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const16594 Instance::createViSurfaceNN( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & createInfo, 16595 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 16596 VULKAN_HPP_RAII_CREATE_NOEXCEPT 16597 { 16598 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 16599 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateViSurfaceNN( 16600 static_cast<VkInstance>( m_instance ), 16601 reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ), 16602 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 16603 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 16604 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16605 { 16606 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 16607 return VULKAN_HPP_UNEXPECTED( result ); 16608 # else 16609 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createViSurfaceNN" ); 16610 # endif 16611 } 16612 16613 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 16614 } 16615 # endif /*VK_USE_PLATFORM_VI_NN*/ 16616 16617 //=== VK_KHR_maintenance1 === 16618 trimKHR(VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags) const16619 VULKAN_HPP_INLINE void CommandPool::trimKHR( VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT 16620 { 16621 VULKAN_HPP_ASSERT( getDispatcher()->vkTrimCommandPoolKHR && "Function <vkTrimCommandPoolKHR> requires <VK_KHR_maintenance1> or <VK_VERSION_1_1>" ); 16622 16623 getDispatcher()->vkTrimCommandPoolKHR( 16624 static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( m_commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) ); 16625 } 16626 16627 //=== VK_KHR_device_group_creation === 16628 enumeratePhysicalDeviceGroupsKHR() const16629 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> Instance::enumeratePhysicalDeviceGroupsKHR() const 16630 { 16631 VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR && 16632 "Function <vkEnumeratePhysicalDeviceGroupsKHR> requires <VK_KHR_device_group_creation> or <VK_VERSION_1_1>" ); 16633 16634 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> physicalDeviceGroupProperties; 16635 uint32_t physicalDeviceGroupCount; 16636 VULKAN_HPP_NAMESPACE::Result result; 16637 do 16638 { 16639 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16640 getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR( static_cast<VkInstance>( m_instance ), &physicalDeviceGroupCount, nullptr ) ); 16641 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount ) 16642 { 16643 physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); 16644 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR( 16645 static_cast<VkInstance>( m_instance ), 16646 &physicalDeviceGroupCount, 16647 reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) ); 16648 } 16649 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 16650 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" ); 16651 VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); 16652 if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) 16653 { 16654 physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); 16655 } 16656 return physicalDeviceGroupProperties; 16657 } 16658 16659 //=== VK_KHR_external_memory_capabilities === 16660 getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo) const16661 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( 16662 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo ) const VULKAN_HPP_NOEXCEPT 16663 { 16664 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalBufferPropertiesKHR && 16665 "Function <vkGetPhysicalDeviceExternalBufferPropertiesKHR> requires <VK_KHR_external_memory_capabilities> or <VK_VERSION_1_1>" ); 16666 16667 VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; 16668 getDispatcher()->vkGetPhysicalDeviceExternalBufferPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16669 reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ), 16670 reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) ); 16671 16672 return externalBufferProperties; 16673 } 16674 16675 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 16676 //=== VK_KHR_external_memory_win32 === 16677 16678 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo) const16679 Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo ) const 16680 { 16681 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandleKHR && "Function <vkGetMemoryWin32HandleKHR> requires <VK_KHR_external_memory_win32>" ); 16682 16683 HANDLE handle; 16684 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryWin32HandleKHR( 16685 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) ); 16686 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" ); 16687 16688 return handle; 16689 } 16690 16691 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle) const16692 Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle ) const 16693 { 16694 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR && 16695 "Function <vkGetMemoryWin32HandlePropertiesKHR> requires <VK_KHR_external_memory_win32>" ); 16696 16697 VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties; 16698 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16699 getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR( static_cast<VkDevice>( m_device ), 16700 static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), 16701 handle, 16702 reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) ) ); 16703 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" ); 16704 16705 return memoryWin32HandleProperties; 16706 } 16707 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 16708 16709 //=== VK_KHR_external_memory_fd === 16710 getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo) const16711 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo ) const 16712 { 16713 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdKHR && "Function <vkGetMemoryFdKHR> requires <VK_KHR_external_memory_fd>" ); 16714 16715 int fd; 16716 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16717 getDispatcher()->vkGetMemoryFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) ); 16718 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" ); 16719 16720 return fd; 16721 } 16722 16723 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd) const16724 Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd ) const 16725 { 16726 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryFdPropertiesKHR && "Function <vkGetMemoryFdPropertiesKHR> requires <VK_KHR_external_memory_fd>" ); 16727 16728 VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties; 16729 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16730 getDispatcher()->vkGetMemoryFdPropertiesKHR( static_cast<VkDevice>( m_device ), 16731 static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), 16732 fd, 16733 reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) ) ); 16734 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" ); 16735 16736 return memoryFdProperties; 16737 } 16738 16739 //=== VK_KHR_external_semaphore_capabilities === 16740 getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo) const16741 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( 16742 const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT 16743 { 16744 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR && 16745 "Function <vkGetPhysicalDeviceExternalSemaphorePropertiesKHR> requires <VK_KHR_external_semaphore_capabilities> or <VK_VERSION_1_1>" ); 16746 16747 VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; 16748 getDispatcher()->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( 16749 static_cast<VkPhysicalDevice>( m_physicalDevice ), 16750 reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ), 16751 reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) ); 16752 16753 return externalSemaphoreProperties; 16754 } 16755 16756 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 16757 //=== VK_KHR_external_semaphore_win32 === 16758 16759 VULKAN_HPP_INLINE void importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo) const16760 Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo ) const 16761 { 16762 VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreWin32HandleKHR && 16763 "Function <vkImportSemaphoreWin32HandleKHR> requires <VK_KHR_external_semaphore_win32>" ); 16764 16765 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreWin32HandleKHR( 16766 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) ); 16767 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" ); 16768 } 16769 16770 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo) const16771 Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo ) const 16772 { 16773 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreWin32HandleKHR && 16774 "Function <vkGetSemaphoreWin32HandleKHR> requires <VK_KHR_external_semaphore_win32>" ); 16775 16776 HANDLE handle; 16777 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreWin32HandleKHR( 16778 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) ); 16779 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" ); 16780 16781 return handle; 16782 } 16783 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 16784 16785 //=== VK_KHR_external_semaphore_fd === 16786 importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo) const16787 VULKAN_HPP_INLINE void Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo ) const 16788 { 16789 VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreFdKHR && "Function <vkImportSemaphoreFdKHR> requires <VK_KHR_external_semaphore_fd>" ); 16790 16791 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreFdKHR( 16792 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) ); 16793 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" ); 16794 } 16795 getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo) const16796 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo ) const 16797 { 16798 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreFdKHR && "Function <vkGetSemaphoreFdKHR> requires <VK_KHR_external_semaphore_fd>" ); 16799 16800 int fd; 16801 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16802 getDispatcher()->vkGetSemaphoreFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) ); 16803 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" ); 16804 16805 return fd; 16806 } 16807 16808 //=== VK_KHR_push_descriptor === 16809 pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites) const16810 VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( 16811 VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 16812 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 16813 uint32_t set, 16814 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites ) const VULKAN_HPP_NOEXCEPT 16815 { 16816 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetKHR && "Function <vkCmdPushDescriptorSetKHR> requires <VK_KHR_push_descriptor>" ); 16817 16818 getDispatcher()->vkCmdPushDescriptorSetKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 16819 static_cast<VkPipelineBindPoint>( pipelineBindPoint ), 16820 static_cast<VkPipelineLayout>( layout ), 16821 set, 16822 descriptorWrites.size(), 16823 reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ) ); 16824 } 16825 16826 template <typename DataType> pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,DataType const & data) const16827 VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 16828 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 16829 uint32_t set, 16830 DataType const & data ) const VULKAN_HPP_NOEXCEPT 16831 { 16832 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR && 16833 "Function <vkCmdPushDescriptorSetWithTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_KHR_push_descriptor>" ); 16834 16835 getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 16836 static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), 16837 static_cast<VkPipelineLayout>( layout ), 16838 set, 16839 reinterpret_cast<const void *>( &data ) ); 16840 } 16841 16842 //=== VK_EXT_conditional_rendering === 16843 beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin) const16844 VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( 16845 const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT 16846 { 16847 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginConditionalRenderingEXT && 16848 "Function <vkCmdBeginConditionalRenderingEXT> requires <VK_EXT_conditional_rendering>" ); 16849 16850 getDispatcher()->vkCmdBeginConditionalRenderingEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 16851 reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) ); 16852 } 16853 endConditionalRenderingEXT() const16854 VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT 16855 { 16856 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndConditionalRenderingEXT && 16857 "Function <vkCmdEndConditionalRenderingEXT> requires <VK_EXT_conditional_rendering>" ); 16858 16859 getDispatcher()->vkCmdEndConditionalRenderingEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 16860 } 16861 16862 //=== VK_KHR_descriptor_update_template === 16863 16864 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 16865 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate>::Type createDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const16866 Device::createDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & createInfo, 16867 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 16868 VULKAN_HPP_RAII_CREATE_NOEXCEPT 16869 { 16870 VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; 16871 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDescriptorUpdateTemplateKHR( 16872 static_cast<VkDevice>( m_device ), 16873 reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ), 16874 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 16875 reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) ); 16876 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16877 { 16878 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 16879 return VULKAN_HPP_UNEXPECTED( result ); 16880 # else 16881 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDescriptorUpdateTemplateKHR" ); 16882 # endif 16883 } 16884 16885 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate( 16886 *this, *reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ), allocator ); 16887 } 16888 16889 VULKAN_HPP_INLINE void destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const16890 Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 16891 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NOEXCEPT 16892 { 16893 VULKAN_HPP_ASSERT( getDispatcher()->vkDestroyDescriptorUpdateTemplateKHR && 16894 "Function <vkDestroyDescriptorUpdateTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" ); 16895 16896 getDispatcher()->vkDestroyDescriptorUpdateTemplateKHR( 16897 static_cast<VkDevice>( m_device ), 16898 static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), 16899 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ); 16900 } 16901 16902 template <typename DataType> updateWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,DataType const & data) const16903 VULKAN_HPP_INLINE void DescriptorSet::updateWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, 16904 DataType const & data ) const VULKAN_HPP_NOEXCEPT 16905 { 16906 VULKAN_HPP_ASSERT( getDispatcher()->vkUpdateDescriptorSetWithTemplateKHR && 16907 "Function <vkUpdateDescriptorSetWithTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" ); 16908 16909 getDispatcher()->vkUpdateDescriptorSetWithTemplateKHR( static_cast<VkDevice>( m_device ), 16910 static_cast<VkDescriptorSet>( m_descriptorSet ), 16911 static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ), 16912 reinterpret_cast<const void *>( &data ) ); 16913 } 16914 16915 //=== VK_NV_clip_space_w_scaling === 16916 setViewportWScalingNV(uint32_t firstViewport,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings) const16917 VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( 16918 uint32_t firstViewport, 16919 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings ) const VULKAN_HPP_NOEXCEPT 16920 { 16921 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWScalingNV && "Function <vkCmdSetViewportWScalingNV> requires <VK_NV_clip_space_w_scaling>" ); 16922 16923 getDispatcher()->vkCmdSetViewportWScalingNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 16924 firstViewport, 16925 viewportWScalings.size(), 16926 reinterpret_cast<const VkViewportWScalingNV *>( viewportWScalings.data() ) ); 16927 } 16928 16929 # if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT ) 16930 //=== VK_EXT_acquire_xlib_display === 16931 acquireXlibDisplayEXT(Display & dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display) const16932 VULKAN_HPP_INLINE void PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const 16933 { 16934 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireXlibDisplayEXT && "Function <vkAcquireXlibDisplayEXT> requires <VK_EXT_acquire_xlib_display>" ); 16935 16936 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16937 getDispatcher()->vkAcquireXlibDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &dpy, static_cast<VkDisplayKHR>( display ) ) ); 16938 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" ); 16939 } 16940 16941 VULKAN_HPP_NODISCARD 16942 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type getRandROutputDisplayEXT(Display & dpy,RROutput rrOutput) const16943 PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 16944 { 16945 VULKAN_HPP_NAMESPACE::DisplayKHR display; 16946 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRandROutputDisplayEXT( 16947 static_cast<VkPhysicalDevice>( m_physicalDevice ), &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) ); 16948 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 16949 { 16950 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 16951 return VULKAN_HPP_UNEXPECTED( result ); 16952 # else 16953 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getRandROutputDisplayEXT" ); 16954 # endif 16955 } 16956 16957 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, *reinterpret_cast<VkDisplayKHR *>( &display ) ); 16958 } 16959 # endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ 16960 16961 //=== VK_EXT_display_surface_counter === 16962 16963 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const16964 PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface ) const 16965 { 16966 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT && 16967 "Function <vkGetPhysicalDeviceSurfaceCapabilities2EXT> requires <VK_EXT_display_surface_counter>" ); 16968 16969 VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities; 16970 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 16971 getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), 16972 static_cast<VkSurfaceKHR>( surface ), 16973 reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) ) ); 16974 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" ); 16975 16976 return surfaceCapabilities; 16977 } 16978 16979 //=== VK_EXT_display_control === 16980 displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo) const16981 VULKAN_HPP_INLINE void Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, 16982 const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo ) const 16983 { 16984 VULKAN_HPP_ASSERT( getDispatcher()->vkDisplayPowerControlEXT && "Function <vkDisplayPowerControlEXT> requires <VK_EXT_display_control>" ); 16985 16986 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkDisplayPowerControlEXT( 16987 static_cast<VkDevice>( m_device ), static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) ); 16988 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" ); 16989 } 16990 16991 VULKAN_HPP_NODISCARD 16992 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type registerEventEXT(VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const16993 Device::registerEventEXT( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfo, 16994 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 16995 VULKAN_HPP_RAII_CREATE_NOEXCEPT 16996 { 16997 VULKAN_HPP_NAMESPACE::Fence fence; 16998 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkRegisterDeviceEventEXT( 16999 static_cast<VkDevice>( m_device ), 17000 reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ), 17001 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 17002 reinterpret_cast<VkFence *>( &fence ) ) ); 17003 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 17004 { 17005 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 17006 return VULKAN_HPP_UNEXPECTED( result ); 17007 # else 17008 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::registerEventEXT" ); 17009 # endif 17010 } 17011 17012 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence( *this, *reinterpret_cast<VkFence *>( &fence ), allocator ); 17013 } 17014 17015 VULKAN_HPP_NODISCARD 17016 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence>::Type registerDisplayEventEXT(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) const17017 Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const & display, 17018 VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & displayEventInfo, 17019 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 17020 VULKAN_HPP_RAII_CREATE_NOEXCEPT 17021 { 17022 VULKAN_HPP_NAMESPACE::Fence fence; 17023 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkRegisterDisplayEventEXT( 17024 static_cast<VkDevice>( m_device ), 17025 static_cast<VkDisplayKHR>( *display ), 17026 reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ), 17027 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 17028 reinterpret_cast<VkFence *>( &fence ) ) ); 17029 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 17030 { 17031 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 17032 return VULKAN_HPP_UNEXPECTED( result ); 17033 # else 17034 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::registerDisplayEventEXT" ); 17035 # endif 17036 } 17037 17038 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence( *this, *reinterpret_cast<VkFence *>( &fence ), allocator ); 17039 } 17040 getCounterEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter) const17041 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t SwapchainKHR::getCounterEXT( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter ) const 17042 { 17043 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainCounterEXT && "Function <vkGetSwapchainCounterEXT> requires <VK_EXT_display_control>" ); 17044 17045 uint64_t counterValue; 17046 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSwapchainCounterEXT( 17047 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) ); 17048 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getCounterEXT" ); 17049 17050 return counterValue; 17051 } 17052 17053 //=== VK_GOOGLE_display_timing === 17054 getRefreshCycleDurationGOOGLE() const17055 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE SwapchainKHR::getRefreshCycleDurationGOOGLE() const 17056 { 17057 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRefreshCycleDurationGOOGLE && "Function <vkGetRefreshCycleDurationGOOGLE> requires <VK_GOOGLE_display_timing>" ); 17058 17059 VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties; 17060 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17061 getDispatcher()->vkGetRefreshCycleDurationGOOGLE( static_cast<VkDevice>( m_device ), 17062 static_cast<VkSwapchainKHR>( m_swapchain ), 17063 reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) ) ); 17064 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getRefreshCycleDurationGOOGLE" ); 17065 17066 return displayTimingProperties; 17067 } 17068 getPastPresentationTimingGOOGLE() const17069 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> SwapchainKHR::getPastPresentationTimingGOOGLE() const 17070 { 17071 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPastPresentationTimingGOOGLE && 17072 "Function <vkGetPastPresentationTimingGOOGLE> requires <VK_GOOGLE_display_timing>" ); 17073 17074 std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> presentationTimings; 17075 uint32_t presentationTimingCount; 17076 VULKAN_HPP_NAMESPACE::Result result; 17077 do 17078 { 17079 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPastPresentationTimingGOOGLE( 17080 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), &presentationTimingCount, nullptr ) ); 17081 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentationTimingCount ) 17082 { 17083 presentationTimings.resize( presentationTimingCount ); 17084 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17085 getDispatcher()->vkGetPastPresentationTimingGOOGLE( static_cast<VkDevice>( m_device ), 17086 static_cast<VkSwapchainKHR>( m_swapchain ), 17087 &presentationTimingCount, 17088 reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) ); 17089 } 17090 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 17091 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getPastPresentationTimingGOOGLE" ); 17092 VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); 17093 if ( presentationTimingCount < presentationTimings.size() ) 17094 { 17095 presentationTimings.resize( presentationTimingCount ); 17096 } 17097 return presentationTimings; 17098 } 17099 17100 //=== VK_EXT_discard_rectangles === 17101 setDiscardRectangleEXT(uint32_t firstDiscardRectangle,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles) const17102 VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( 17103 uint32_t firstDiscardRectangle, VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles ) const VULKAN_HPP_NOEXCEPT 17104 { 17105 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDiscardRectangleEXT && "Function <vkCmdSetDiscardRectangleEXT> requires <VK_EXT_discard_rectangles>" ); 17106 17107 getDispatcher()->vkCmdSetDiscardRectangleEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 17108 firstDiscardRectangle, 17109 discardRectangles.size(), 17110 reinterpret_cast<const VkRect2D *>( discardRectangles.data() ) ); 17111 } 17112 setDiscardRectangleEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable) const17113 VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable ) const VULKAN_HPP_NOEXCEPT 17114 { 17115 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDiscardRectangleEnableEXT && 17116 "Function <vkCmdSetDiscardRectangleEnableEXT> requires <VK_EXT_discard_rectangles>" ); 17117 17118 getDispatcher()->vkCmdSetDiscardRectangleEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( discardRectangleEnable ) ); 17119 } 17120 17121 VULKAN_HPP_INLINE void setDiscardRectangleModeEXT(VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode) const17122 CommandBuffer::setDiscardRectangleModeEXT( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode ) const VULKAN_HPP_NOEXCEPT 17123 { 17124 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDiscardRectangleModeEXT && 17125 "Function <vkCmdSetDiscardRectangleModeEXT> requires <VK_EXT_discard_rectangles>" ); 17126 17127 getDispatcher()->vkCmdSetDiscardRectangleModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 17128 static_cast<VkDiscardRectangleModeEXT>( discardRectangleMode ) ); 17129 } 17130 17131 //=== VK_EXT_hdr_metadata === 17132 setHdrMetadataEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata) const17133 VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains, 17134 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata ) const 17135 { 17136 VULKAN_HPP_ASSERT( getDispatcher()->vkSetHdrMetadataEXT && "Function <vkSetHdrMetadataEXT> requires <VK_EXT_hdr_metadata>" ); 17137 # ifdef VULKAN_HPP_NO_EXCEPTIONS 17138 VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() ); 17139 # else 17140 if ( swapchains.size() != metadata.size() ) 17141 { 17142 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" ); 17143 } 17144 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 17145 17146 getDispatcher()->vkSetHdrMetadataEXT( static_cast<VkDevice>( m_device ), 17147 swapchains.size(), 17148 reinterpret_cast<const VkSwapchainKHR *>( swapchains.data() ), 17149 reinterpret_cast<const VkHdrMetadataEXT *>( metadata.data() ) ); 17150 } 17151 17152 //=== VK_KHR_create_renderpass2 === 17153 17154 VULKAN_HPP_NODISCARD 17155 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass>::Type createRenderPass2KHR(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const17156 Device::createRenderPass2KHR( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & createInfo, 17157 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 17158 VULKAN_HPP_RAII_CREATE_NOEXCEPT 17159 { 17160 VULKAN_HPP_NAMESPACE::RenderPass renderPass; 17161 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRenderPass2KHR( 17162 static_cast<VkDevice>( m_device ), 17163 reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ), 17164 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 17165 reinterpret_cast<VkRenderPass *>( &renderPass ) ) ); 17166 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 17167 { 17168 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 17169 return VULKAN_HPP_UNEXPECTED( result ); 17170 # else 17171 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRenderPass2KHR" ); 17172 # endif 17173 } 17174 17175 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass( *this, *reinterpret_cast<VkRenderPass *>( &renderPass ), allocator ); 17176 } 17177 beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo) const17178 VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin, 17179 const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT 17180 { 17181 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginRenderPass2KHR && 17182 "Function <vkCmdBeginRenderPass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" ); 17183 17184 getDispatcher()->vkCmdBeginRenderPass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 17185 reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), 17186 reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) ); 17187 } 17188 nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo) const17189 VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo, 17190 const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT 17191 { 17192 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdNextSubpass2KHR && "Function <vkCmdNextSubpass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" ); 17193 17194 getDispatcher()->vkCmdNextSubpass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 17195 reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), 17196 reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) ); 17197 } 17198 endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo) const17199 VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT 17200 { 17201 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndRenderPass2KHR && 17202 "Function <vkCmdEndRenderPass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" ); 17203 17204 getDispatcher()->vkCmdEndRenderPass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) ); 17205 } 17206 17207 //=== VK_KHR_shared_presentable_image === 17208 getStatus() const17209 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::getStatus() const 17210 { 17211 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSwapchainStatusKHR && "Function <vkGetSwapchainStatusKHR> requires <VK_KHR_shared_presentable_image>" ); 17212 17213 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17214 getDispatcher()->vkGetSwapchainStatusKHR( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) ) ); 17215 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 17216 VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getStatus", 17217 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); 17218 17219 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 17220 } 17221 17222 //=== VK_KHR_external_fence_capabilities === 17223 17224 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo) const17225 PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo ) const VULKAN_HPP_NOEXCEPT 17226 { 17227 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceExternalFencePropertiesKHR && 17228 "Function <vkGetPhysicalDeviceExternalFencePropertiesKHR> requires <VK_KHR_external_fence_capabilities> or <VK_VERSION_1_1>" ); 17229 17230 VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; 17231 getDispatcher()->vkGetPhysicalDeviceExternalFencePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17232 reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ), 17233 reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) ); 17234 17235 return externalFenceProperties; 17236 } 17237 17238 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 17239 //=== VK_KHR_external_fence_win32 === 17240 importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo) const17241 VULKAN_HPP_INLINE void Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo ) const 17242 { 17243 VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceWin32HandleKHR && "Function <vkImportFenceWin32HandleKHR> requires <VK_KHR_external_fence_win32>" ); 17244 17245 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportFenceWin32HandleKHR( 17246 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) ); 17247 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" ); 17248 } 17249 17250 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo) const17251 Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo ) const 17252 { 17253 VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceWin32HandleKHR && "Function <vkGetFenceWin32HandleKHR> requires <VK_KHR_external_fence_win32>" ); 17254 17255 HANDLE handle; 17256 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetFenceWin32HandleKHR( 17257 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) ); 17258 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" ); 17259 17260 return handle; 17261 } 17262 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 17263 17264 //=== VK_KHR_external_fence_fd === 17265 importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo) const17266 VULKAN_HPP_INLINE void Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo ) const 17267 { 17268 VULKAN_HPP_ASSERT( getDispatcher()->vkImportFenceFdKHR && "Function <vkImportFenceFdKHR> requires <VK_KHR_external_fence_fd>" ); 17269 17270 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17271 getDispatcher()->vkImportFenceFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) ); 17272 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" ); 17273 } 17274 getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo) const17275 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo ) const 17276 { 17277 VULKAN_HPP_ASSERT( getDispatcher()->vkGetFenceFdKHR && "Function <vkGetFenceFdKHR> requires <VK_KHR_external_fence_fd>" ); 17278 17279 int fd; 17280 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17281 getDispatcher()->vkGetFenceFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) ); 17282 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" ); 17283 17284 return fd; 17285 } 17286 17287 //=== VK_KHR_performance_query === 17288 17289 VULKAN_HPP_NODISCARD 17290 VULKAN_HPP_INLINE std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>, std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>> enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex) const17291 PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex ) const 17292 { 17293 VULKAN_HPP_ASSERT( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR && 17294 "Function <vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR> requires <VK_KHR_performance_query>" ); 17295 17296 std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>, std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>> data_; 17297 std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR> & counters = data_.first; 17298 std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR> & counterDescriptions = data_.second; 17299 uint32_t counterCount; 17300 VULKAN_HPP_NAMESPACE::Result result; 17301 do 17302 { 17303 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( 17304 static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &counterCount, nullptr, nullptr ) ); 17305 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && counterCount ) 17306 { 17307 counters.resize( counterCount ); 17308 counterDescriptions.resize( counterCount ); 17309 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( 17310 static_cast<VkPhysicalDevice>( m_physicalDevice ), 17311 queueFamilyIndex, 17312 &counterCount, 17313 reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ), 17314 reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) ); 17315 } 17316 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 17317 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); 17318 VULKAN_HPP_ASSERT( counterCount <= counters.size() ); 17319 if ( counterCount < counters.size() ) 17320 { 17321 counters.resize( counterCount ); 17322 counterDescriptions.resize( counterCount ); 17323 } 17324 return data_; 17325 } 17326 getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo) const17327 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( 17328 const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo ) const VULKAN_HPP_NOEXCEPT 17329 { 17330 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR && 17331 "Function <vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR> requires <VK_KHR_performance_query>" ); 17332 17333 uint32_t numPasses; 17334 getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( 17335 static_cast<VkPhysicalDevice>( m_physicalDevice ), 17336 reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( &performanceQueryCreateInfo ), 17337 &numPasses ); 17338 17339 return numPasses; 17340 } 17341 acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info) const17342 VULKAN_HPP_INLINE void Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info ) const 17343 { 17344 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireProfilingLockKHR && "Function <vkAcquireProfilingLockKHR> requires <VK_KHR_performance_query>" ); 17345 17346 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17347 getDispatcher()->vkAcquireProfilingLockKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) ); 17348 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" ); 17349 } 17350 releaseProfilingLockKHR() const17351 VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT 17352 { 17353 VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseProfilingLockKHR && "Function <vkReleaseProfilingLockKHR> requires <VK_KHR_performance_query>" ); 17354 17355 getDispatcher()->vkReleaseProfilingLockKHR( static_cast<VkDevice>( m_device ) ); 17356 } 17357 17358 //=== VK_KHR_get_surface_capabilities2 === 17359 17360 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const17361 PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 17362 { 17363 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR && 17364 "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> requires <VK_KHR_get_surface_capabilities2>" ); 17365 17366 VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities; 17367 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17368 getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17369 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 17370 reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) ); 17371 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); 17372 17373 return surfaceCapabilities; 17374 } 17375 17376 template <typename X, typename Y, typename... Z> 17377 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const17378 PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 17379 { 17380 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR && 17381 "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> requires <VK_KHR_get_surface_capabilities2>" ); 17382 17383 StructureChain<X, Y, Z...> structureChain; 17384 VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>(); 17385 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17386 getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17387 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 17388 reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) ); 17389 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); 17390 17391 return structureChain; 17392 } 17393 17394 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const17395 PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 17396 { 17397 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR && 17398 "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> requires <VK_KHR_get_surface_capabilities2>" ); 17399 17400 std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats; 17401 uint32_t surfaceFormatCount; 17402 VULKAN_HPP_NAMESPACE::Result result; 17403 do 17404 { 17405 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17406 getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17407 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 17408 &surfaceFormatCount, 17409 nullptr ) ); 17410 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount ) 17411 { 17412 surfaceFormats.resize( surfaceFormatCount ); 17413 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17414 getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17415 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 17416 &surfaceFormatCount, 17417 reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) ); 17418 } 17419 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 17420 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); 17421 VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); 17422 if ( surfaceFormatCount < surfaceFormats.size() ) 17423 { 17424 surfaceFormats.resize( surfaceFormatCount ); 17425 } 17426 return surfaceFormats; 17427 } 17428 17429 template <typename StructureChain> 17430 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const17431 PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 17432 { 17433 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR && 17434 "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> requires <VK_KHR_get_surface_capabilities2>" ); 17435 17436 std::vector<StructureChain> structureChains; 17437 std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats; 17438 uint32_t surfaceFormatCount; 17439 VULKAN_HPP_NAMESPACE::Result result; 17440 do 17441 { 17442 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17443 getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17444 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 17445 &surfaceFormatCount, 17446 nullptr ) ); 17447 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount ) 17448 { 17449 structureChains.resize( surfaceFormatCount ); 17450 surfaceFormats.resize( surfaceFormatCount ); 17451 for ( uint32_t i = 0; i < surfaceFormatCount; i++ ) 17452 { 17453 surfaceFormats[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>().pNext; 17454 } 17455 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17456 getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17457 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 17458 &surfaceFormatCount, 17459 reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) ); 17460 } 17461 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 17462 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" ); 17463 VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); 17464 if ( surfaceFormatCount < surfaceFormats.size() ) 17465 { 17466 structureChains.resize( surfaceFormatCount ); 17467 } 17468 for ( uint32_t i = 0; i < surfaceFormatCount; i++ ) 17469 { 17470 structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>() = surfaceFormats[i]; 17471 } 17472 return structureChains; 17473 } 17474 17475 //=== VK_KHR_get_display_properties2 === 17476 getDisplayProperties2KHR() const17477 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> PhysicalDevice::getDisplayProperties2KHR() const 17478 { 17479 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR && 17480 "Function <vkGetPhysicalDeviceDisplayProperties2KHR> requires <VK_KHR_get_display_properties2>" ); 17481 17482 std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> properties; 17483 uint32_t propertyCount; 17484 VULKAN_HPP_NAMESPACE::Result result; 17485 do 17486 { 17487 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17488 getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 17489 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 17490 { 17491 properties.resize( propertyCount ); 17492 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR( 17493 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) ); 17494 } 17495 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 17496 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" ); 17497 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 17498 if ( propertyCount < properties.size() ) 17499 { 17500 properties.resize( propertyCount ); 17501 } 17502 return properties; 17503 } 17504 getDisplayPlaneProperties2KHR() const17505 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> PhysicalDevice::getDisplayPlaneProperties2KHR() const 17506 { 17507 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR && 17508 "Function <vkGetPhysicalDeviceDisplayPlaneProperties2KHR> requires <VK_KHR_get_display_properties2>" ); 17509 17510 std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> properties; 17511 uint32_t propertyCount; 17512 VULKAN_HPP_NAMESPACE::Result result; 17513 do 17514 { 17515 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17516 getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 17517 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 17518 { 17519 properties.resize( propertyCount ); 17520 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR( 17521 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) ); 17522 } 17523 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 17524 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" ); 17525 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 17526 if ( propertyCount < properties.size() ) 17527 { 17528 properties.resize( propertyCount ); 17529 } 17530 return properties; 17531 } 17532 getModeProperties2() const17533 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> DisplayKHR::getModeProperties2() const 17534 { 17535 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayModeProperties2KHR && 17536 "Function <vkGetDisplayModeProperties2KHR> requires <VK_KHR_get_display_properties2>" ); 17537 17538 std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> properties; 17539 uint32_t propertyCount; 17540 VULKAN_HPP_NAMESPACE::Result result; 17541 do 17542 { 17543 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDisplayModeProperties2KHR( 17544 static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ), &propertyCount, nullptr ) ); 17545 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 17546 { 17547 properties.resize( propertyCount ); 17548 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17549 getDispatcher()->vkGetDisplayModeProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17550 static_cast<VkDisplayKHR>( m_display ), 17551 &propertyCount, 17552 reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) ); 17553 } 17554 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 17555 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties2" ); 17556 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 17557 if ( propertyCount < properties.size() ) 17558 { 17559 properties.resize( propertyCount ); 17560 } 17561 return properties; 17562 } 17563 17564 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo) const17565 PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo ) const 17566 { 17567 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDisplayPlaneCapabilities2KHR && 17568 "Function <vkGetDisplayPlaneCapabilities2KHR> requires <VK_KHR_get_display_properties2>" ); 17569 17570 VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities; 17571 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17572 getDispatcher()->vkGetDisplayPlaneCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17573 reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ), 17574 reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) ) ); 17575 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); 17576 17577 return capabilities; 17578 } 17579 17580 # if defined( VK_USE_PLATFORM_IOS_MVK ) 17581 //=== VK_MVK_ios_surface === 17582 17583 VULKAN_HPP_NODISCARD 17584 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createIOSSurfaceMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const17585 Instance::createIOSSurfaceMVK( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & createInfo, 17586 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 17587 VULKAN_HPP_RAII_CREATE_NOEXCEPT 17588 { 17589 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 17590 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateIOSSurfaceMVK( 17591 static_cast<VkInstance>( m_instance ), 17592 reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ), 17593 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 17594 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 17595 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 17596 { 17597 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 17598 return VULKAN_HPP_UNEXPECTED( result ); 17599 # else 17600 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createIOSSurfaceMVK" ); 17601 # endif 17602 } 17603 17604 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 17605 } 17606 # endif /*VK_USE_PLATFORM_IOS_MVK*/ 17607 17608 # if defined( VK_USE_PLATFORM_MACOS_MVK ) 17609 //=== VK_MVK_macos_surface === 17610 17611 VULKAN_HPP_NODISCARD 17612 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createMacOSSurfaceMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const17613 Instance::createMacOSSurfaceMVK( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & createInfo, 17614 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 17615 VULKAN_HPP_RAII_CREATE_NOEXCEPT 17616 { 17617 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 17618 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateMacOSSurfaceMVK( 17619 static_cast<VkInstance>( m_instance ), 17620 reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ), 17621 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 17622 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 17623 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 17624 { 17625 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 17626 return VULKAN_HPP_UNEXPECTED( result ); 17627 # else 17628 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createMacOSSurfaceMVK" ); 17629 # endif 17630 } 17631 17632 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 17633 } 17634 # endif /*VK_USE_PLATFORM_MACOS_MVK*/ 17635 17636 //=== VK_EXT_debug_utils === 17637 setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo) const17638 VULKAN_HPP_INLINE void Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo ) const 17639 { 17640 VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectNameEXT && "Function <vkSetDebugUtilsObjectNameEXT> requires <VK_EXT_debug_utils>" ); 17641 17642 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetDebugUtilsObjectNameEXT( 17643 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) ); 17644 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" ); 17645 } 17646 setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo) const17647 VULKAN_HPP_INLINE void Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo ) const 17648 { 17649 VULKAN_HPP_ASSERT( getDispatcher()->vkSetDebugUtilsObjectTagEXT && "Function <vkSetDebugUtilsObjectTagEXT> requires <VK_EXT_debug_utils>" ); 17650 17651 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17652 getDispatcher()->vkSetDebugUtilsObjectTagEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) ); 17653 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" ); 17654 } 17655 beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo) const17656 VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT 17657 { 17658 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueBeginDebugUtilsLabelEXT && "Function <vkQueueBeginDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" ); 17659 17660 getDispatcher()->vkQueueBeginDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) ); 17661 } 17662 endDebugUtilsLabelEXT() const17663 VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT 17664 { 17665 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueEndDebugUtilsLabelEXT && "Function <vkQueueEndDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" ); 17666 17667 getDispatcher()->vkQueueEndDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ) ); 17668 } 17669 insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo) const17670 VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT 17671 { 17672 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueInsertDebugUtilsLabelEXT && "Function <vkQueueInsertDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" ); 17673 17674 getDispatcher()->vkQueueInsertDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) ); 17675 } 17676 beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo) const17677 VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT 17678 { 17679 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBeginDebugUtilsLabelEXT && "Function <vkCmdBeginDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" ); 17680 17681 getDispatcher()->vkCmdBeginDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 17682 reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) ); 17683 } 17684 endDebugUtilsLabelEXT() const17685 VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT 17686 { 17687 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEndDebugUtilsLabelEXT && "Function <vkCmdEndDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" ); 17688 17689 getDispatcher()->vkCmdEndDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 17690 } 17691 insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo) const17692 VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo ) const VULKAN_HPP_NOEXCEPT 17693 { 17694 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdInsertDebugUtilsLabelEXT && "Function <vkCmdInsertDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" ); 17695 17696 getDispatcher()->vkCmdInsertDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 17697 reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) ); 17698 } 17699 17700 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 17701 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT>::Type createDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const17702 Instance::createDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & createInfo, 17703 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 17704 VULKAN_HPP_RAII_CREATE_NOEXCEPT 17705 { 17706 VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; 17707 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDebugUtilsMessengerEXT( 17708 static_cast<VkInstance>( m_instance ), 17709 reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ), 17710 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 17711 reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) ); 17712 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 17713 { 17714 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 17715 return VULKAN_HPP_UNEXPECTED( result ); 17716 # else 17717 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDebugUtilsMessengerEXT" ); 17718 # endif 17719 } 17720 17721 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT( 17722 *this, *reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ), allocator ); 17723 } 17724 17725 VULKAN_HPP_INLINE void submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData) const17726 Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 17727 VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, 17728 const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData ) const VULKAN_HPP_NOEXCEPT 17729 { 17730 VULKAN_HPP_ASSERT( getDispatcher()->vkSubmitDebugUtilsMessageEXT && "Function <vkSubmitDebugUtilsMessageEXT> requires <VK_EXT_debug_utils>" ); 17731 17732 getDispatcher()->vkSubmitDebugUtilsMessageEXT( static_cast<VkInstance>( m_instance ), 17733 static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ), 17734 static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ), 17735 reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( &callbackData ) ); 17736 } 17737 17738 # if defined( VK_USE_PLATFORM_ANDROID_KHR ) 17739 //=== VK_ANDROID_external_memory_android_hardware_buffer === 17740 17741 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer) const17742 Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const 17743 { 17744 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID && 17745 "Function <vkGetAndroidHardwareBufferPropertiesANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" ); 17746 17747 VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties; 17748 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( 17749 static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) ); 17750 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); 17751 17752 return properties; 17753 } 17754 17755 template <typename X, typename Y, typename... Z> 17756 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer) const17757 Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer ) const 17758 { 17759 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID && 17760 "Function <vkGetAndroidHardwareBufferPropertiesANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" ); 17761 17762 StructureChain<X, Y, Z...> structureChain; 17763 VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = 17764 structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>(); 17765 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID( 17766 static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) ); 17767 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); 17768 17769 return structureChain; 17770 } 17771 17772 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE struct AHardwareBuffer * getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info) const17773 Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info ) const 17774 { 17775 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID && 17776 "Function <vkGetMemoryAndroidHardwareBufferANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" ); 17777 17778 struct AHardwareBuffer * buffer; 17779 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID( 17780 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer ) ); 17781 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" ); 17782 17783 return buffer; 17784 } 17785 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/ 17786 17787 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 17788 //=== VK_AMDX_shader_enqueue === 17789 17790 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 17791 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type createExecutionGraphPipelinesAMDX(VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const17792 Device::createExecutionGraphPipelinesAMDX( 17793 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 17794 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos, 17795 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 17796 { 17797 std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() ); 17798 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateExecutionGraphPipelinesAMDX( 17799 static_cast<VkDevice>( m_device ), 17800 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 17801 createInfos.size(), 17802 reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ), 17803 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 17804 reinterpret_cast<VkPipeline *>( pipelines.data() ) ) ); 17805 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 17806 { 17807 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 17808 return VULKAN_HPP_UNEXPECTED( result ); 17809 # else 17810 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createExecutionGraphPipelinesAMDX" ); 17811 # endif 17812 } 17813 17814 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII; 17815 pipelinesRAII.reserve( pipelines.size() ); 17816 for ( auto & pipeline : pipelines ) 17817 { 17818 pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 17819 } 17820 return pipelinesRAII; 17821 } 17822 17823 VULKAN_HPP_NODISCARD 17824 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type createExecutionGraphPipelineAMDX(VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache,VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const17825 Device::createExecutionGraphPipelineAMDX( 17826 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 17827 VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const & createInfo, 17828 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 17829 { 17830 VULKAN_HPP_NAMESPACE::Pipeline pipeline; 17831 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateExecutionGraphPipelinesAMDX( 17832 static_cast<VkDevice>( m_device ), 17833 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 17834 1, 17835 reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( &createInfo ), 17836 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 17837 reinterpret_cast<VkPipeline *>( &pipeline ) ) ); 17838 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 17839 { 17840 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 17841 return VULKAN_HPP_UNEXPECTED( result ); 17842 # else 17843 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createExecutionGraphPipelineAMDX" ); 17844 # endif 17845 } 17846 17847 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 17848 } 17849 getExecutionGraphScratchSizeAMDX() const17850 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX Pipeline::getExecutionGraphScratchSizeAMDX() const 17851 { 17852 VULKAN_HPP_ASSERT( getDispatcher()->vkGetExecutionGraphPipelineScratchSizeAMDX && 17853 "Function <vkGetExecutionGraphPipelineScratchSizeAMDX> requires <VK_AMDX_shader_enqueue>" ); 17854 17855 VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX sizeInfo; 17856 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetExecutionGraphPipelineScratchSizeAMDX( 17857 static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX *>( &sizeInfo ) ) ); 17858 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getExecutionGraphScratchSizeAMDX" ); 17859 17860 return sizeInfo; 17861 } 17862 17863 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t getExecutionGraphNodeIndexAMDX(const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo) const17864 Pipeline::getExecutionGraphNodeIndexAMDX( const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo ) const 17865 { 17866 VULKAN_HPP_ASSERT( getDispatcher()->vkGetExecutionGraphPipelineNodeIndexAMDX && 17867 "Function <vkGetExecutionGraphPipelineNodeIndexAMDX> requires <VK_AMDX_shader_enqueue>" ); 17868 17869 uint32_t nodeIndex; 17870 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 17871 getDispatcher()->vkGetExecutionGraphPipelineNodeIndexAMDX( static_cast<VkDevice>( m_device ), 17872 static_cast<VkPipeline>( m_pipeline ), 17873 reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX *>( &nodeInfo ), 17874 &nodeIndex ) ); 17875 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getExecutionGraphNodeIndexAMDX" ); 17876 17877 return nodeIndex; 17878 } 17879 initializeGraphScratchMemoryAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch) const17880 VULKAN_HPP_INLINE void CommandBuffer::initializeGraphScratchMemoryAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch ) const VULKAN_HPP_NOEXCEPT 17881 { 17882 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdInitializeGraphScratchMemoryAMDX && 17883 "Function <vkCmdInitializeGraphScratchMemoryAMDX> requires <VK_AMDX_shader_enqueue>" ); 17884 17885 getDispatcher()->vkCmdInitializeGraphScratchMemoryAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( scratch ) ); 17886 } 17887 dispatchGraphAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch,const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo) const17888 VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch, 17889 const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo ) const VULKAN_HPP_NOEXCEPT 17890 { 17891 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchGraphAMDX && "Function <vkCmdDispatchGraphAMDX> requires <VK_AMDX_shader_enqueue>" ); 17892 17893 getDispatcher()->vkCmdDispatchGraphAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ), 17894 static_cast<VkDeviceAddress>( scratch ), 17895 reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( &countInfo ) ); 17896 } 17897 17898 VULKAN_HPP_INLINE void dispatchGraphIndirectAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch,const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo) const17899 CommandBuffer::dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch, 17900 const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo ) const VULKAN_HPP_NOEXCEPT 17901 { 17902 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchGraphIndirectAMDX && "Function <vkCmdDispatchGraphIndirectAMDX> requires <VK_AMDX_shader_enqueue>" ); 17903 17904 getDispatcher()->vkCmdDispatchGraphIndirectAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ), 17905 static_cast<VkDeviceAddress>( scratch ), 17906 reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( &countInfo ) ); 17907 } 17908 dispatchGraphIndirectCountAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch,VULKAN_HPP_NAMESPACE::DeviceAddress countInfo) const17909 VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphIndirectCountAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch, 17910 VULKAN_HPP_NAMESPACE::DeviceAddress countInfo ) const VULKAN_HPP_NOEXCEPT 17911 { 17912 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDispatchGraphIndirectCountAMDX && 17913 "Function <vkCmdDispatchGraphIndirectCountAMDX> requires <VK_AMDX_shader_enqueue>" ); 17914 17915 getDispatcher()->vkCmdDispatchGraphIndirectCountAMDX( 17916 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( scratch ), static_cast<VkDeviceAddress>( countInfo ) ); 17917 } 17918 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 17919 17920 //=== VK_EXT_sample_locations === 17921 17922 VULKAN_HPP_INLINE void setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo) const17923 CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT 17924 { 17925 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleLocationsEXT && "Function <vkCmdSetSampleLocationsEXT> requires <VK_EXT_sample_locations>" ); 17926 17927 getDispatcher()->vkCmdSetSampleLocationsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 17928 reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) ); 17929 } 17930 17931 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples) const17932 PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples ) const VULKAN_HPP_NOEXCEPT 17933 { 17934 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT && 17935 "Function <vkGetPhysicalDeviceMultisamplePropertiesEXT> requires <VK_EXT_sample_locations>" ); 17936 17937 VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; 17938 getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), 17939 static_cast<VkSampleCountFlagBits>( samples ), 17940 reinterpret_cast<VkMultisamplePropertiesEXT *>( &multisampleProperties ) ); 17941 17942 return multisampleProperties; 17943 } 17944 17945 //=== VK_KHR_get_memory_requirements2 === 17946 17947 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info) const17948 Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 17949 { 17950 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements2KHR && 17951 "Function <vkGetImageMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 17952 17953 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 17954 getDispatcher()->vkGetImageMemoryRequirements2KHR( static_cast<VkDevice>( m_device ), 17955 reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), 17956 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 17957 17958 return memoryRequirements; 17959 } 17960 17961 template <typename X, typename Y, typename... Z> 17962 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info) const17963 Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 17964 { 17965 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageMemoryRequirements2KHR && 17966 "Function <vkGetImageMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 17967 17968 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 17969 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 17970 getDispatcher()->vkGetImageMemoryRequirements2KHR( static_cast<VkDevice>( m_device ), 17971 reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), 17972 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 17973 17974 return structureChain; 17975 } 17976 17977 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info) const17978 Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 17979 { 17980 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements2KHR && 17981 "Function <vkGetBufferMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 17982 17983 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 17984 getDispatcher()->vkGetBufferMemoryRequirements2KHR( static_cast<VkDevice>( m_device ), 17985 reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), 17986 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 17987 17988 return memoryRequirements; 17989 } 17990 17991 template <typename X, typename Y, typename... Z> 17992 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info) const17993 Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info ) const VULKAN_HPP_NOEXCEPT 17994 { 17995 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferMemoryRequirements2KHR && 17996 "Function <vkGetBufferMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 17997 17998 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 17999 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 18000 getDispatcher()->vkGetBufferMemoryRequirements2KHR( static_cast<VkDevice>( m_device ), 18001 reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), 18002 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 18003 18004 return structureChain; 18005 } 18006 18007 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info) const18008 Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info ) const 18009 { 18010 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageSparseMemoryRequirements2KHR && 18011 "Function <vkGetImageSparseMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" ); 18012 18013 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements; 18014 uint32_t sparseMemoryRequirementCount; 18015 getDispatcher()->vkGetImageSparseMemoryRequirements2KHR( 18016 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr ); 18017 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 18018 getDispatcher()->vkGetImageSparseMemoryRequirements2KHR( static_cast<VkDevice>( m_device ), 18019 reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), 18020 &sparseMemoryRequirementCount, 18021 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) ); 18022 18023 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 18024 if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() ) 18025 { 18026 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 18027 } 18028 return sparseMemoryRequirements; 18029 } 18030 18031 //=== VK_KHR_acceleration_structure === 18032 18033 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 18034 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR>::Type createAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const18035 Device::createAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & createInfo, 18036 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 18037 VULKAN_HPP_RAII_CREATE_NOEXCEPT 18038 { 18039 VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure; 18040 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAccelerationStructureKHR( 18041 static_cast<VkDevice>( m_device ), 18042 reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ), 18043 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 18044 reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) ); 18045 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 18046 { 18047 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 18048 return VULKAN_HPP_UNEXPECTED( result ); 18049 # else 18050 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createAccelerationStructureKHR" ); 18051 # endif 18052 } 18053 18054 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR( 18055 *this, *reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ), allocator ); 18056 } 18057 buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos) const18058 VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( 18059 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 18060 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos ) const 18061 { 18062 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructuresKHR && 18063 "Function <vkCmdBuildAccelerationStructuresKHR> requires <VK_KHR_acceleration_structure>" ); 18064 # ifdef VULKAN_HPP_NO_EXCEPTIONS 18065 VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); 18066 # else 18067 if ( infos.size() != pBuildRangeInfos.size() ) 18068 { 18069 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); 18070 } 18071 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 18072 18073 getDispatcher()->vkCmdBuildAccelerationStructuresKHR( 18074 static_cast<VkCommandBuffer>( m_commandBuffer ), 18075 infos.size(), 18076 reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), 18077 reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) ); 18078 } 18079 buildAccelerationStructuresIndirectKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & indirectStrides,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts) const18080 VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( 18081 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 18082 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses, 18083 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & indirectStrides, 18084 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts ) const 18085 { 18086 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR && 18087 "Function <vkCmdBuildAccelerationStructuresIndirectKHR> requires <VK_KHR_acceleration_structure>" ); 18088 # ifdef VULKAN_HPP_NO_EXCEPTIONS 18089 VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() ); 18090 VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() ); 18091 VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() ); 18092 # else 18093 if ( infos.size() != indirectDeviceAddresses.size() ) 18094 { 18095 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 18096 "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectDeviceAddresses.size()" ); 18097 } 18098 if ( infos.size() != indirectStrides.size() ) 18099 { 18100 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectStrides.size()" ); 18101 } 18102 if ( infos.size() != pMaxPrimitiveCounts.size() ) 18103 { 18104 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()" ); 18105 } 18106 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 18107 18108 getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 18109 infos.size(), 18110 reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), 18111 reinterpret_cast<const VkDeviceAddress *>( indirectDeviceAddresses.data() ), 18112 indirectStrides.data(), 18113 pMaxPrimitiveCounts.data() ); 18114 } 18115 buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos) const18116 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::buildAccelerationStructuresKHR( 18117 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 18118 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos, 18119 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos ) const 18120 { 18121 VULKAN_HPP_ASSERT( getDispatcher()->vkBuildAccelerationStructuresKHR && 18122 "Function <vkBuildAccelerationStructuresKHR> requires <VK_KHR_acceleration_structure>" ); 18123 # ifdef VULKAN_HPP_NO_EXCEPTIONS 18124 VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); 18125 # else 18126 if ( infos.size() != pBuildRangeInfos.size() ) 18127 { 18128 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); 18129 } 18130 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 18131 18132 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBuildAccelerationStructuresKHR( 18133 static_cast<VkDevice>( m_device ), 18134 static_cast<VkDeferredOperationKHR>( deferredOperation ), 18135 infos.size(), 18136 reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ), 18137 reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) ) ); 18138 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 18139 VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR", 18140 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 18141 VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, 18142 VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); 18143 18144 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 18145 } 18146 18147 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result copyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info) const18148 Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 18149 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const 18150 { 18151 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyAccelerationStructureKHR && 18152 "Function <vkCopyAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" ); 18153 18154 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18155 getDispatcher()->vkCopyAccelerationStructureKHR( static_cast<VkDevice>( m_device ), 18156 static_cast<VkDeferredOperationKHR>( deferredOperation ), 18157 reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) ); 18158 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 18159 VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", 18160 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 18161 VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, 18162 VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); 18163 18164 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 18165 } 18166 18167 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result copyAccelerationStructureToMemoryKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info) const18168 Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 18169 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const 18170 { 18171 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyAccelerationStructureToMemoryKHR && 18172 "Function <vkCopyAccelerationStructureToMemoryKHR> requires <VK_KHR_acceleration_structure>" ); 18173 18174 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18175 getDispatcher()->vkCopyAccelerationStructureToMemoryKHR( static_cast<VkDevice>( m_device ), 18176 static_cast<VkDeferredOperationKHR>( deferredOperation ), 18177 reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) ); 18178 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 18179 VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", 18180 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 18181 VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, 18182 VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); 18183 18184 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 18185 } 18186 18187 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result copyMemoryToAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info) const18188 Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 18189 const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const 18190 { 18191 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToAccelerationStructureKHR && 18192 "Function <vkCopyMemoryToAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" ); 18193 18194 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18195 getDispatcher()->vkCopyMemoryToAccelerationStructureKHR( static_cast<VkDevice>( m_device ), 18196 static_cast<VkDeferredOperationKHR>( deferredOperation ), 18197 reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) ); 18198 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 18199 VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", 18200 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 18201 VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, 18202 VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); 18203 18204 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 18205 } 18206 18207 template <typename DataType> writeAccelerationStructuresPropertiesKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,size_t stride) const18208 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType> Device::writeAccelerationStructuresPropertiesKHR( 18209 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 18210 VULKAN_HPP_NAMESPACE::QueryType queryType, 18211 size_t dataSize, 18212 size_t stride ) const 18213 { 18214 VULKAN_HPP_ASSERT( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR && 18215 "Function <vkWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" ); 18216 18217 VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 ); 18218 std::vector<DataType> data( dataSize / sizeof( DataType ) ); 18219 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18220 getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( static_cast<VkDevice>( m_device ), 18221 accelerationStructures.size(), 18222 reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), 18223 static_cast<VkQueryType>( queryType ), 18224 data.size() * sizeof( DataType ), 18225 reinterpret_cast<void *>( data.data() ), 18226 stride ) ); 18227 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); 18228 18229 return data; 18230 } 18231 18232 template <typename DataType> writeAccelerationStructuresPropertyKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t stride) const18233 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::writeAccelerationStructuresPropertyKHR( 18234 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 18235 VULKAN_HPP_NAMESPACE::QueryType queryType, 18236 size_t stride ) const 18237 { 18238 VULKAN_HPP_ASSERT( getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR && 18239 "Function <vkWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" ); 18240 18241 DataType data; 18242 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18243 getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR( static_cast<VkDevice>( m_device ), 18244 accelerationStructures.size(), 18245 reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), 18246 static_cast<VkQueryType>( queryType ), 18247 sizeof( DataType ), 18248 reinterpret_cast<void *>( &data ), 18249 stride ) ); 18250 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" ); 18251 18252 return data; 18253 } 18254 18255 VULKAN_HPP_INLINE void copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info) const18256 CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 18257 { 18258 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureKHR && 18259 "Function <vkCmdCopyAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" ); 18260 18261 getDispatcher()->vkCmdCopyAccelerationStructureKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 18262 reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ); 18263 } 18264 copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info) const18265 VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( 18266 const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 18267 { 18268 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR && 18269 "Function <vkCmdCopyAccelerationStructureToMemoryKHR> requires <VK_KHR_acceleration_structure>" ); 18270 18271 getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 18272 reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ); 18273 } 18274 copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info) const18275 VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( 18276 const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 18277 { 18278 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR && 18279 "Function <vkCmdCopyMemoryToAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" ); 18280 18281 getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 18282 reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ); 18283 } 18284 18285 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info) const18286 Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 18287 { 18288 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR && 18289 "Function <vkGetAccelerationStructureDeviceAddressKHR> requires <VK_KHR_acceleration_structure>" ); 18290 18291 VkDeviceAddress result = getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR( 18292 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( &info ) ); 18293 18294 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result ); 18295 } 18296 writeAccelerationStructuresPropertiesKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery) const18297 VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( 18298 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures, 18299 VULKAN_HPP_NAMESPACE::QueryType queryType, 18300 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 18301 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT 18302 { 18303 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR && 18304 "Function <vkCmdWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" ); 18305 18306 getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 18307 accelerationStructures.size(), 18308 reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ), 18309 static_cast<VkQueryType>( queryType ), 18310 static_cast<VkQueryPool>( queryPool ), 18311 firstQuery ); 18312 } 18313 getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo) const18314 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR Device::getAccelerationStructureCompatibilityKHR( 18315 const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo ) const VULKAN_HPP_NOEXCEPT 18316 { 18317 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR && 18318 "Function <vkGetDeviceAccelerationStructureCompatibilityKHR> requires <VK_KHR_acceleration_structure>" ); 18319 18320 VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility; 18321 getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR( static_cast<VkDevice>( m_device ), 18322 reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( &versionInfo ), 18323 reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>( &compatibility ) ); 18324 18325 return compatibility; 18326 } 18327 18328 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR getAccelerationStructureBuildSizesKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR & buildInfo,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & maxPrimitiveCounts) const18329 Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, 18330 const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR & buildInfo, 18331 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & maxPrimitiveCounts ) const 18332 { 18333 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureBuildSizesKHR && 18334 "Function <vkGetAccelerationStructureBuildSizesKHR> requires <VK_KHR_acceleration_structure>" ); 18335 # ifdef VULKAN_HPP_NO_EXCEPTIONS 18336 VULKAN_HPP_ASSERT( maxPrimitiveCounts.size() == buildInfo.geometryCount ); 18337 # else 18338 if ( maxPrimitiveCounts.size() != buildInfo.geometryCount ) 18339 { 18340 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureBuildSizesKHR: maxPrimitiveCounts.size() != buildInfo.geometryCount" ); 18341 } 18342 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 18343 18344 VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo; 18345 getDispatcher()->vkGetAccelerationStructureBuildSizesKHR( static_cast<VkDevice>( m_device ), 18346 static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ), 18347 reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( &buildInfo ), 18348 maxPrimitiveCounts.data(), 18349 reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( &sizeInfo ) ); 18350 18351 return sizeInfo; 18352 } 18353 18354 //=== VK_KHR_ray_tracing_pipeline === 18355 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) const18356 VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable, 18357 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable, 18358 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable, 18359 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable, 18360 uint32_t width, 18361 uint32_t height, 18362 uint32_t depth ) const VULKAN_HPP_NOEXCEPT 18363 { 18364 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysKHR && "Function <vkCmdTraceRaysKHR> requires <VK_KHR_ray_tracing_pipeline>" ); 18365 18366 getDispatcher()->vkCmdTraceRaysKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 18367 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ), 18368 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ), 18369 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ), 18370 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ), 18371 width, 18372 height, 18373 depth ); 18374 } 18375 18376 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 18377 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type createRayTracingPipelinesKHR(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) const18378 Device::createRayTracingPipelinesKHR( 18379 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, 18380 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 18381 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos, 18382 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 18383 { 18384 std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() ); 18385 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesKHR( 18386 static_cast<VkDevice>( m_device ), 18387 deferredOperation ? static_cast<VkDeferredOperationKHR>( **deferredOperation ) : 0, 18388 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 18389 createInfos.size(), 18390 reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ), 18391 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 18392 reinterpret_cast<VkPipeline *>( pipelines.data() ) ) ); 18393 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && 18394 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 18395 { 18396 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 18397 return VULKAN_HPP_UNEXPECTED( result ); 18398 # else 18399 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelinesKHR" ); 18400 # endif 18401 } 18402 18403 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII; 18404 pipelinesRAII.reserve( pipelines.size() ); 18405 for ( auto & pipeline : pipelines ) 18406 { 18407 pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 18408 } 18409 return pipelinesRAII; 18410 } 18411 18412 VULKAN_HPP_NODISCARD 18413 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type createRayTracingPipelineKHR(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) const18414 Device::createRayTracingPipelineKHR( 18415 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR> const & deferredOperation, 18416 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 18417 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const & createInfo, 18418 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 18419 { 18420 VULKAN_HPP_NAMESPACE::Pipeline pipeline; 18421 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesKHR( 18422 static_cast<VkDevice>( m_device ), 18423 deferredOperation ? static_cast<VkDeferredOperationKHR>( **deferredOperation ) : 0, 18424 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 18425 1, 18426 reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ), 18427 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 18428 reinterpret_cast<VkPipeline *>( &pipeline ) ) ); 18429 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR ) && 18430 ( result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 18431 { 18432 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 18433 return VULKAN_HPP_UNEXPECTED( result ); 18434 # else 18435 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelineKHR" ); 18436 # endif 18437 } 18438 18439 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 18440 } 18441 18442 template <typename DataType> 18443 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType> getRayTracingShaderGroupHandlesKHR(uint32_t firstGroup,uint32_t groupCount,size_t dataSize) const18444 Pipeline::getRayTracingShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const 18445 { 18446 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR && 18447 "Function <vkGetRayTracingShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" ); 18448 18449 VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 ); 18450 std::vector<DataType> data( dataSize / sizeof( DataType ) ); 18451 VULKAN_HPP_NAMESPACE::Result result = 18452 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ), 18453 static_cast<VkPipeline>( m_pipeline ), 18454 firstGroup, 18455 groupCount, 18456 data.size() * sizeof( DataType ), 18457 reinterpret_cast<void *>( data.data() ) ) ); 18458 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesKHR" ); 18459 18460 return data; 18461 } 18462 18463 template <typename DataType> getRayTracingShaderGroupHandleKHR(uint32_t firstGroup,uint32_t groupCount) const18464 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const 18465 { 18466 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR && 18467 "Function <vkGetRayTracingShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" ); 18468 18469 DataType data; 18470 VULKAN_HPP_NAMESPACE::Result result = 18471 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ), 18472 static_cast<VkPipeline>( m_pipeline ), 18473 firstGroup, 18474 groupCount, 18475 sizeof( DataType ), 18476 reinterpret_cast<void *>( &data ) ) ); 18477 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleKHR" ); 18478 18479 return data; 18480 } 18481 18482 template <typename DataType> 18483 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType> getRayTracingCaptureReplayShaderGroupHandlesKHR(uint32_t firstGroup,uint32_t groupCount,size_t dataSize) const18484 Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const 18485 { 18486 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR && 18487 "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline>" ); 18488 18489 VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 ); 18490 std::vector<DataType> data( dataSize / sizeof( DataType ) ); 18491 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18492 getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ), 18493 static_cast<VkPipeline>( m_pipeline ), 18494 firstGroup, 18495 groupCount, 18496 data.size() * sizeof( DataType ), 18497 reinterpret_cast<void *>( data.data() ) ) ); 18498 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); 18499 18500 return data; 18501 } 18502 18503 template <typename DataType> getRayTracingCaptureReplayShaderGroupHandleKHR(uint32_t firstGroup,uint32_t groupCount) const18504 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR( uint32_t firstGroup, uint32_t groupCount ) const 18505 { 18506 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR && 18507 "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline>" ); 18508 18509 DataType data; 18510 VULKAN_HPP_NAMESPACE::Result result = 18511 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( static_cast<VkDevice>( m_device ), 18512 static_cast<VkPipeline>( m_pipeline ), 18513 firstGroup, 18514 groupCount, 18515 sizeof( DataType ), 18516 reinterpret_cast<void *>( &data ) ) ); 18517 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR" ); 18518 18519 return data; 18520 } 18521 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) const18522 VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable, 18523 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable, 18524 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable, 18525 const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable, 18526 VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT 18527 { 18528 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysIndirectKHR && "Function <vkCmdTraceRaysIndirectKHR> requires <VK_KHR_ray_tracing_pipeline>" ); 18529 18530 getDispatcher()->vkCmdTraceRaysIndirectKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 18531 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ), 18532 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ), 18533 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ), 18534 reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ), 18535 static_cast<VkDeviceAddress>( indirectDeviceAddress ) ); 18536 } 18537 18538 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize getRayTracingShaderGroupStackSizeKHR(uint32_t group,VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader) const18539 Pipeline::getRayTracingShaderGroupStackSizeKHR( uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT 18540 { 18541 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR && 18542 "Function <vkGetRayTracingShaderGroupStackSizeKHR> requires <VK_KHR_ray_tracing_pipeline>" ); 18543 18544 VkDeviceSize result = getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR( 18545 static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), group, static_cast<VkShaderGroupShaderKHR>( groupShader ) ); 18546 18547 return static_cast<VULKAN_HPP_NAMESPACE::DeviceSize>( result ); 18548 } 18549 setRayTracingPipelineStackSizeKHR(uint32_t pipelineStackSize) const18550 VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT 18551 { 18552 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR && 18553 "Function <vkCmdSetRayTracingPipelineStackSizeKHR> requires <VK_KHR_ray_tracing_pipeline>" ); 18554 18555 getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), pipelineStackSize ); 18556 } 18557 18558 //=== VK_KHR_sampler_ycbcr_conversion === 18559 18560 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 18561 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion>::Type createSamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const18562 Device::createSamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & createInfo, 18563 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 18564 VULKAN_HPP_RAII_CREATE_NOEXCEPT 18565 { 18566 VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; 18567 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateSamplerYcbcrConversionKHR( 18568 static_cast<VkDevice>( m_device ), 18569 reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ), 18570 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 18571 reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) ); 18572 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 18573 { 18574 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 18575 return VULKAN_HPP_UNEXPECTED( result ); 18576 # else 18577 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createSamplerYcbcrConversionKHR" ); 18578 # endif 18579 } 18580 18581 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion( 18582 *this, *reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ), allocator ); 18583 } 18584 18585 VULKAN_HPP_INLINE void destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const18586 Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, 18587 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NOEXCEPT 18588 { 18589 VULKAN_HPP_ASSERT( getDispatcher()->vkDestroySamplerYcbcrConversionKHR && 18590 "Function <vkDestroySamplerYcbcrConversionKHR> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" ); 18591 18592 getDispatcher()->vkDestroySamplerYcbcrConversionKHR( 18593 static_cast<VkDevice>( m_device ), 18594 static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ), 18595 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ); 18596 } 18597 18598 //=== VK_KHR_bind_memory2 === 18599 18600 VULKAN_HPP_INLINE void bindBufferMemory2KHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos) const18601 Device::bindBufferMemory2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos ) const 18602 { 18603 VULKAN_HPP_ASSERT( getDispatcher()->vkBindBufferMemory2KHR && "Function <vkBindBufferMemory2KHR> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" ); 18604 18605 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindBufferMemory2KHR( 18606 static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) ); 18607 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" ); 18608 } 18609 18610 VULKAN_HPP_INLINE void bindImageMemory2KHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos) const18611 Device::bindImageMemory2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos ) const 18612 { 18613 VULKAN_HPP_ASSERT( getDispatcher()->vkBindImageMemory2KHR && "Function <vkBindImageMemory2KHR> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" ); 18614 18615 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindImageMemory2KHR( 18616 static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) ); 18617 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" ); 18618 } 18619 18620 //=== VK_EXT_image_drm_format_modifier === 18621 getDrmFormatModifierPropertiesEXT() const18622 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT Image::getDrmFormatModifierPropertiesEXT() const 18623 { 18624 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT && 18625 "Function <vkGetImageDrmFormatModifierPropertiesEXT> requires <VK_EXT_image_drm_format_modifier>" ); 18626 18627 VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties; 18628 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT( 18629 static_cast<VkDevice>( m_device ), static_cast<VkImage>( m_image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) ) ); 18630 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Image::getDrmFormatModifierPropertiesEXT" ); 18631 18632 return properties; 18633 } 18634 18635 //=== VK_EXT_validation_cache === 18636 18637 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 18638 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT>::Type createValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const18639 Device::createValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & createInfo, 18640 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 18641 VULKAN_HPP_RAII_CREATE_NOEXCEPT 18642 { 18643 VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; 18644 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateValidationCacheEXT( 18645 static_cast<VkDevice>( m_device ), 18646 reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ), 18647 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 18648 reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) ); 18649 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 18650 { 18651 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 18652 return VULKAN_HPP_UNEXPECTED( result ); 18653 # else 18654 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createValidationCacheEXT" ); 18655 # endif 18656 } 18657 18658 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT( 18659 *this, *reinterpret_cast<VkValidationCacheEXT *>( &validationCache ), allocator ); 18660 } 18661 merge(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches) const18662 VULKAN_HPP_INLINE void ValidationCacheEXT::merge( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches ) const 18663 { 18664 VULKAN_HPP_ASSERT( getDispatcher()->vkMergeValidationCachesEXT && "Function <vkMergeValidationCachesEXT> requires <VK_EXT_validation_cache>" ); 18665 18666 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18667 getDispatcher()->vkMergeValidationCachesEXT( static_cast<VkDevice>( m_device ), 18668 static_cast<VkValidationCacheEXT>( m_validationCache ), 18669 srcCaches.size(), 18670 reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) ); 18671 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::merge" ); 18672 } 18673 getData() const18674 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> ValidationCacheEXT::getData() const 18675 { 18676 VULKAN_HPP_ASSERT( getDispatcher()->vkGetValidationCacheDataEXT && "Function <vkGetValidationCacheDataEXT> requires <VK_EXT_validation_cache>" ); 18677 18678 std::vector<uint8_t> data; 18679 size_t dataSize; 18680 VULKAN_HPP_NAMESPACE::Result result; 18681 do 18682 { 18683 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetValidationCacheDataEXT( 18684 static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( m_validationCache ), &dataSize, nullptr ) ); 18685 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) 18686 { 18687 data.resize( dataSize ); 18688 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetValidationCacheDataEXT( 18689 static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( m_validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) ); 18690 } 18691 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 18692 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::getData" ); 18693 VULKAN_HPP_ASSERT( dataSize <= data.size() ); 18694 if ( dataSize < data.size() ) 18695 { 18696 data.resize( dataSize ); 18697 } 18698 return data; 18699 } 18700 18701 //=== VK_NV_shading_rate_image === 18702 bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout) const18703 VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, 18704 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT 18705 { 18706 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindShadingRateImageNV && "Function <vkCmdBindShadingRateImageNV> requires <VK_NV_shading_rate_image>" ); 18707 18708 getDispatcher()->vkCmdBindShadingRateImageNV( 18709 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) ); 18710 } 18711 setViewportShadingRatePaletteNV(uint32_t firstViewport,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes) const18712 VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( 18713 uint32_t firstViewport, 18714 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes ) const VULKAN_HPP_NOEXCEPT 18715 { 18716 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportShadingRatePaletteNV && 18717 "Function <vkCmdSetViewportShadingRatePaletteNV> requires <VK_NV_shading_rate_image>" ); 18718 18719 getDispatcher()->vkCmdSetViewportShadingRatePaletteNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 18720 firstViewport, 18721 shadingRatePalettes.size(), 18722 reinterpret_cast<const VkShadingRatePaletteNV *>( shadingRatePalettes.data() ) ); 18723 } 18724 setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders) const18725 VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( 18726 VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, 18727 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders ) const VULKAN_HPP_NOEXCEPT 18728 { 18729 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoarseSampleOrderNV && "Function <vkCmdSetCoarseSampleOrderNV> requires <VK_NV_shading_rate_image>" ); 18730 18731 getDispatcher()->vkCmdSetCoarseSampleOrderNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 18732 static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ), 18733 customSampleOrders.size(), 18734 reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( customSampleOrders.data() ) ); 18735 } 18736 18737 //=== VK_NV_ray_tracing === 18738 18739 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 18740 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV>::Type createAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const18741 Device::createAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & createInfo, 18742 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 18743 VULKAN_HPP_RAII_CREATE_NOEXCEPT 18744 { 18745 VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; 18746 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateAccelerationStructureNV( 18747 static_cast<VkDevice>( m_device ), 18748 reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ), 18749 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 18750 reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) ); 18751 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 18752 { 18753 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 18754 return VULKAN_HPP_UNEXPECTED( result ); 18755 # else 18756 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createAccelerationStructureNV" ); 18757 # endif 18758 } 18759 18760 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV( 18761 *this, *reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ), allocator ); 18762 } 18763 getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info) const18764 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( 18765 const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT 18766 { 18767 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV && 18768 "Function <vkGetAccelerationStructureMemoryRequirementsNV> requires <VK_NV_ray_tracing>" ); 18769 18770 VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements; 18771 getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( static_cast<VkDevice>( m_device ), 18772 reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), 18773 reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) ); 18774 18775 return memoryRequirements; 18776 } 18777 18778 template <typename X, typename Y, typename... Z> getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info) const18779 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV( 18780 const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT 18781 { 18782 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV && 18783 "Function <vkGetAccelerationStructureMemoryRequirementsNV> requires <VK_NV_ray_tracing>" ); 18784 18785 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 18786 VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>(); 18787 getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV( static_cast<VkDevice>( m_device ), 18788 reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ), 18789 reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) ); 18790 18791 return structureChain; 18792 } 18793 bindAccelerationStructureMemoryNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos) const18794 VULKAN_HPP_INLINE void Device::bindAccelerationStructureMemoryNV( 18795 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos ) const 18796 { 18797 VULKAN_HPP_ASSERT( getDispatcher()->vkBindAccelerationStructureMemoryNV && 18798 "Function <vkBindAccelerationStructureMemoryNV> requires <VK_NV_ray_tracing>" ); 18799 18800 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBindAccelerationStructureMemoryNV( 18801 static_cast<VkDevice>( m_device ), bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( bindInfos.data() ) ) ); 18802 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" ); 18803 } 18804 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) const18805 VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV & info, 18806 VULKAN_HPP_NAMESPACE::Buffer instanceData, 18807 VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, 18808 VULKAN_HPP_NAMESPACE::Bool32 update, 18809 VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, 18810 VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, 18811 VULKAN_HPP_NAMESPACE::Buffer scratch, 18812 VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT 18813 { 18814 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildAccelerationStructureNV && "Function <vkCmdBuildAccelerationStructureNV> requires <VK_NV_ray_tracing>" ); 18815 18816 getDispatcher()->vkCmdBuildAccelerationStructureNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 18817 reinterpret_cast<const VkAccelerationStructureInfoNV *>( &info ), 18818 static_cast<VkBuffer>( instanceData ), 18819 static_cast<VkDeviceSize>( instanceOffset ), 18820 static_cast<VkBool32>( update ), 18821 static_cast<VkAccelerationStructureNV>( dst ), 18822 static_cast<VkAccelerationStructureNV>( src ), 18823 static_cast<VkBuffer>( scratch ), 18824 static_cast<VkDeviceSize>( scratchOffset ) ); 18825 } 18826 copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst,VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode) const18827 VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, 18828 VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, 18829 VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT 18830 { 18831 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyAccelerationStructureNV && "Function <vkCmdCopyAccelerationStructureNV> requires <VK_NV_ray_tracing>" ); 18832 18833 getDispatcher()->vkCmdCopyAccelerationStructureNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 18834 static_cast<VkAccelerationStructureNV>( dst ), 18835 static_cast<VkAccelerationStructureNV>( src ), 18836 static_cast<VkCopyAccelerationStructureModeKHR>( mode ) ); 18837 } 18838 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) const18839 VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, 18840 VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, 18841 VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, 18842 VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, 18843 VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, 18844 VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, 18845 VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, 18846 VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, 18847 VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, 18848 VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, 18849 VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, 18850 uint32_t width, 18851 uint32_t height, 18852 uint32_t depth ) const VULKAN_HPP_NOEXCEPT 18853 { 18854 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysNV && "Function <vkCmdTraceRaysNV> requires <VK_NV_ray_tracing>" ); 18855 18856 getDispatcher()->vkCmdTraceRaysNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 18857 static_cast<VkBuffer>( raygenShaderBindingTableBuffer ), 18858 static_cast<VkDeviceSize>( raygenShaderBindingOffset ), 18859 static_cast<VkBuffer>( missShaderBindingTableBuffer ), 18860 static_cast<VkDeviceSize>( missShaderBindingOffset ), 18861 static_cast<VkDeviceSize>( missShaderBindingStride ), 18862 static_cast<VkBuffer>( hitShaderBindingTableBuffer ), 18863 static_cast<VkDeviceSize>( hitShaderBindingOffset ), 18864 static_cast<VkDeviceSize>( hitShaderBindingStride ), 18865 static_cast<VkBuffer>( callableShaderBindingTableBuffer ), 18866 static_cast<VkDeviceSize>( callableShaderBindingOffset ), 18867 static_cast<VkDeviceSize>( callableShaderBindingStride ), 18868 width, 18869 height, 18870 depth ); 18871 } 18872 18873 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 18874 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>>::Type createRayTracingPipelinesNV(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) const18875 Device::createRayTracingPipelinesNV( 18876 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 18877 VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos, 18878 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 18879 { 18880 std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() ); 18881 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesNV( 18882 static_cast<VkDevice>( m_device ), 18883 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 18884 createInfos.size(), 18885 reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ), 18886 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 18887 reinterpret_cast<VkPipeline *>( pipelines.data() ) ) ); 18888 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 18889 { 18890 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 18891 return VULKAN_HPP_UNEXPECTED( result ); 18892 # else 18893 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelinesNV" ); 18894 # endif 18895 } 18896 18897 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline> pipelinesRAII; 18898 pipelinesRAII.reserve( pipelines.size() ); 18899 for ( auto & pipeline : pipelines ) 18900 { 18901 pipelinesRAII.emplace_back( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 18902 } 18903 return pipelinesRAII; 18904 } 18905 18906 VULKAN_HPP_NODISCARD 18907 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>::Type createRayTracingPipelineNV(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) const18908 Device::createRayTracingPipelineNV( 18909 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const & pipelineCache, 18910 VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & createInfo, 18911 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 18912 { 18913 VULKAN_HPP_NAMESPACE::Pipeline pipeline; 18914 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateRayTracingPipelinesNV( 18915 static_cast<VkDevice>( m_device ), 18916 pipelineCache ? static_cast<VkPipelineCache>( **pipelineCache ) : 0, 18917 1, 18918 reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ), 18919 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 18920 reinterpret_cast<VkPipeline *>( &pipeline ) ) ); 18921 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) 18922 { 18923 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 18924 return VULKAN_HPP_UNEXPECTED( result ); 18925 # else 18926 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createRayTracingPipelineNV" ); 18927 # endif 18928 } 18929 18930 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline( *this, *reinterpret_cast<VkPipeline *>( &pipeline ), allocator, result ); 18931 } 18932 18933 template <typename DataType> 18934 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType> getRayTracingShaderGroupHandlesNV(uint32_t firstGroup,uint32_t groupCount,size_t dataSize) const18935 Pipeline::getRayTracingShaderGroupHandlesNV( uint32_t firstGroup, uint32_t groupCount, size_t dataSize ) const 18936 { 18937 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV && 18938 "Function <vkGetRayTracingShaderGroupHandlesNV> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" ); 18939 18940 VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 ); 18941 std::vector<DataType> data( dataSize / sizeof( DataType ) ); 18942 VULKAN_HPP_NAMESPACE::Result result = 18943 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV( static_cast<VkDevice>( m_device ), 18944 static_cast<VkPipeline>( m_pipeline ), 18945 firstGroup, 18946 groupCount, 18947 data.size() * sizeof( DataType ), 18948 reinterpret_cast<void *>( data.data() ) ) ); 18949 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesNV" ); 18950 18951 return data; 18952 } 18953 18954 template <typename DataType> getRayTracingShaderGroupHandleNV(uint32_t firstGroup,uint32_t groupCount) const18955 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Pipeline::getRayTracingShaderGroupHandleNV( uint32_t firstGroup, uint32_t groupCount ) const 18956 { 18957 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV && 18958 "Function <vkGetRayTracingShaderGroupHandlesNV> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" ); 18959 18960 DataType data; 18961 VULKAN_HPP_NAMESPACE::Result result = 18962 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetRayTracingShaderGroupHandlesNV( static_cast<VkDevice>( m_device ), 18963 static_cast<VkPipeline>( m_pipeline ), 18964 firstGroup, 18965 groupCount, 18966 sizeof( DataType ), 18967 reinterpret_cast<void *>( &data ) ) ); 18968 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleNV" ); 18969 18970 return data; 18971 } 18972 18973 template <typename DataType> getHandle(size_t dataSize) const18974 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType> AccelerationStructureNV::getHandle( size_t dataSize ) const 18975 { 18976 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && "Function <vkGetAccelerationStructureHandleNV> requires <VK_NV_ray_tracing>" ); 18977 18978 VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 ); 18979 std::vector<DataType> data( dataSize / sizeof( DataType ) ); 18980 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18981 getDispatcher()->vkGetAccelerationStructureHandleNV( static_cast<VkDevice>( m_device ), 18982 static_cast<VkAccelerationStructureNV>( m_accelerationStructure ), 18983 data.size() * sizeof( DataType ), 18984 reinterpret_cast<void *>( data.data() ) ) ); 18985 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); 18986 18987 return data; 18988 } 18989 18990 template <typename DataType> getHandle() const18991 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType AccelerationStructureNV::getHandle() const 18992 { 18993 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureHandleNV && "Function <vkGetAccelerationStructureHandleNV> requires <VK_NV_ray_tracing>" ); 18994 18995 DataType data; 18996 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 18997 getDispatcher()->vkGetAccelerationStructureHandleNV( static_cast<VkDevice>( m_device ), 18998 static_cast<VkAccelerationStructureNV>( m_accelerationStructure ), 18999 sizeof( DataType ), 19000 reinterpret_cast<void *>( &data ) ) ); 19001 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle" ); 19002 19003 return data; 19004 } 19005 writeAccelerationStructuresPropertiesNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery) const19006 VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( 19007 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures, 19008 VULKAN_HPP_NAMESPACE::QueryType queryType, 19009 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 19010 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT 19011 { 19012 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV && 19013 "Function <vkCmdWriteAccelerationStructuresPropertiesNV> requires <VK_NV_ray_tracing>" ); 19014 19015 getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 19016 accelerationStructures.size(), 19017 reinterpret_cast<const VkAccelerationStructureNV *>( accelerationStructures.data() ), 19018 static_cast<VkQueryType>( queryType ), 19019 static_cast<VkQueryPool>( queryPool ), 19020 firstQuery ); 19021 } 19022 compileDeferredNV(uint32_t shader) const19023 VULKAN_HPP_INLINE void Pipeline::compileDeferredNV( uint32_t shader ) const 19024 { 19025 VULKAN_HPP_ASSERT( getDispatcher()->vkCompileDeferredNV && "Function <vkCompileDeferredNV> requires <VK_NV_ray_tracing>" ); 19026 19027 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19028 getDispatcher()->vkCompileDeferredNV( static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( m_pipeline ), shader ) ); 19029 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::compileDeferredNV" ); 19030 } 19031 19032 //=== VK_KHR_maintenance3 === 19033 19034 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo) const19035 Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 19036 { 19037 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSupportKHR && 19038 "Function <vkGetDescriptorSetLayoutSupportKHR> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" ); 19039 19040 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; 19041 getDispatcher()->vkGetDescriptorSetLayoutSupportKHR( static_cast<VkDevice>( m_device ), 19042 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 19043 reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) ); 19044 19045 return support; 19046 } 19047 19048 template <typename X, typename Y, typename... Z> 19049 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo) const19050 Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 19051 { 19052 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSupportKHR && 19053 "Function <vkGetDescriptorSetLayoutSupportKHR> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" ); 19054 19055 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 19056 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>(); 19057 getDispatcher()->vkGetDescriptorSetLayoutSupportKHR( static_cast<VkDevice>( m_device ), 19058 reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), 19059 reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) ); 19060 19061 return structureChain; 19062 } 19063 19064 //=== VK_KHR_draw_indirect_count === 19065 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) const19066 VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 19067 VULKAN_HPP_NAMESPACE::DeviceSize offset, 19068 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 19069 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 19070 uint32_t maxDrawCount, 19071 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 19072 { 19073 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawIndirectCountKHR && 19074 "Function <vkCmdDrawIndirectCountKHR> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" ); 19075 19076 getDispatcher()->vkCmdDrawIndirectCountKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 19077 static_cast<VkBuffer>( buffer ), 19078 static_cast<VkDeviceSize>( offset ), 19079 static_cast<VkBuffer>( countBuffer ), 19080 static_cast<VkDeviceSize>( countBufferOffset ), 19081 maxDrawCount, 19082 stride ); 19083 } 19084 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) const19085 VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 19086 VULKAN_HPP_NAMESPACE::DeviceSize offset, 19087 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 19088 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 19089 uint32_t maxDrawCount, 19090 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 19091 { 19092 VULKAN_HPP_ASSERT( 19093 getDispatcher()->vkCmdDrawIndexedIndirectCountKHR && 19094 "Function <vkCmdDrawIndexedIndirectCountKHR> requires <VK_AMD_draw_indirect_count> or <VK_KHR_draw_indirect_count> or <VK_VERSION_1_2>" ); 19095 19096 getDispatcher()->vkCmdDrawIndexedIndirectCountKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 19097 static_cast<VkBuffer>( buffer ), 19098 static_cast<VkDeviceSize>( offset ), 19099 static_cast<VkBuffer>( countBuffer ), 19100 static_cast<VkDeviceSize>( countBufferOffset ), 19101 maxDrawCount, 19102 stride ); 19103 } 19104 19105 //=== VK_EXT_external_memory_host === 19106 19107 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer) const19108 Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer ) const 19109 { 19110 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryHostPointerPropertiesEXT && 19111 "Function <vkGetMemoryHostPointerPropertiesEXT> requires <VK_EXT_external_memory_host>" ); 19112 19113 VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties; 19114 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19115 getDispatcher()->vkGetMemoryHostPointerPropertiesEXT( static_cast<VkDevice>( m_device ), 19116 static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), 19117 pHostPointer, 19118 reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) ) ); 19119 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" ); 19120 19121 return memoryHostPointerProperties; 19122 } 19123 19124 //=== VK_AMD_buffer_marker === 19125 writeBufferMarkerAMD(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,uint32_t marker) const19126 VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, 19127 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 19128 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 19129 uint32_t marker ) const VULKAN_HPP_NOEXCEPT 19130 { 19131 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarkerAMD && "Function <vkCmdWriteBufferMarkerAMD> requires <VK_AMD_buffer_marker>" ); 19132 19133 getDispatcher()->vkCmdWriteBufferMarkerAMD( static_cast<VkCommandBuffer>( m_commandBuffer ), 19134 static_cast<VkPipelineStageFlagBits>( pipelineStage ), 19135 static_cast<VkBuffer>( dstBuffer ), 19136 static_cast<VkDeviceSize>( dstOffset ), 19137 marker ); 19138 } 19139 19140 //=== VK_EXT_calibrated_timestamps === 19141 getCalibrateableTimeDomainsEXT() const19142 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> PhysicalDevice::getCalibrateableTimeDomainsEXT() const 19143 { 19144 VULKAN_HPP_ASSERT( 19145 getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT && 19146 "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" ); 19147 19148 std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> timeDomains; 19149 uint32_t timeDomainCount; 19150 VULKAN_HPP_NAMESPACE::Result result; 19151 do 19152 { 19153 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19154 getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, nullptr ) ); 19155 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount ) 19156 { 19157 timeDomains.resize( timeDomainCount ); 19158 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( 19159 static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) ); 19160 } 19161 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 19162 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); 19163 VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); 19164 if ( timeDomainCount < timeDomains.size() ) 19165 { 19166 timeDomains.resize( timeDomainCount ); 19167 } 19168 return timeDomains; 19169 } 19170 getCalibratedTimestampsEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos) const19171 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<std::vector<uint64_t>, uint64_t> Device::getCalibratedTimestampsEXT( 19172 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos ) const 19173 { 19174 VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsEXT && 19175 "Function <vkGetCalibratedTimestampsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" ); 19176 19177 std::pair<std::vector<uint64_t>, uint64_t> data_( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) ); 19178 std::vector<uint64_t> & timestamps = data_.first; 19179 uint64_t & maxDeviation = data_.second; 19180 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19181 getDispatcher()->vkGetCalibratedTimestampsEXT( static_cast<VkDevice>( m_device ), 19182 timestampInfos.size(), 19183 reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), 19184 timestamps.data(), 19185 &maxDeviation ) ); 19186 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); 19187 19188 return data_; 19189 } 19190 19191 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint64_t, uint64_t> getCalibratedTimestampEXT(const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo) const19192 Device::getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const 19193 { 19194 VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsEXT && 19195 "Function <vkGetCalibratedTimestampsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" ); 19196 19197 std::pair<uint64_t, uint64_t> data_; 19198 uint64_t & timestamp = data_.first; 19199 uint64_t & maxDeviation = data_.second; 19200 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCalibratedTimestampsEXT( 19201 static_cast<VkDevice>( m_device ), 1, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( ×tampInfo ), ×tamp, &maxDeviation ) ); 19202 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" ); 19203 19204 return data_; 19205 } 19206 19207 //=== VK_NV_mesh_shader === 19208 drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask) const19209 VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT 19210 { 19211 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksNV && "Function <vkCmdDrawMeshTasksNV> requires <VK_NV_mesh_shader>" ); 19212 19213 getDispatcher()->vkCmdDrawMeshTasksNV( static_cast<VkCommandBuffer>( m_commandBuffer ), taskCount, firstTask ); 19214 } 19215 drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride) const19216 VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, 19217 VULKAN_HPP_NAMESPACE::DeviceSize offset, 19218 uint32_t drawCount, 19219 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 19220 { 19221 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectNV && "Function <vkCmdDrawMeshTasksIndirectNV> requires <VK_NV_mesh_shader>" ); 19222 19223 getDispatcher()->vkCmdDrawMeshTasksIndirectNV( 19224 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride ); 19225 } 19226 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) const19227 VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, 19228 VULKAN_HPP_NAMESPACE::DeviceSize offset, 19229 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 19230 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 19231 uint32_t maxDrawCount, 19232 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 19233 { 19234 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV && "Function <vkCmdDrawMeshTasksIndirectCountNV> requires <VK_NV_mesh_shader>" ); 19235 19236 getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 19237 static_cast<VkBuffer>( buffer ), 19238 static_cast<VkDeviceSize>( offset ), 19239 static_cast<VkBuffer>( countBuffer ), 19240 static_cast<VkDeviceSize>( countBufferOffset ), 19241 maxDrawCount, 19242 stride ); 19243 } 19244 19245 //=== VK_NV_scissor_exclusive === 19246 setExclusiveScissorEnableNV(uint32_t firstExclusiveScissor,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables) const19247 VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorEnableNV( 19248 uint32_t firstExclusiveScissor, 19249 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables ) const VULKAN_HPP_NOEXCEPT 19250 { 19251 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExclusiveScissorEnableNV && 19252 "Function <vkCmdSetExclusiveScissorEnableNV> requires <VK_NV_scissor_exclusive>" ); 19253 19254 getDispatcher()->vkCmdSetExclusiveScissorEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 19255 firstExclusiveScissor, 19256 exclusiveScissorEnables.size(), 19257 reinterpret_cast<const VkBool32 *>( exclusiveScissorEnables.data() ) ); 19258 } 19259 setExclusiveScissorNV(uint32_t firstExclusiveScissor,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors) const19260 VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( 19261 uint32_t firstExclusiveScissor, VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors ) const VULKAN_HPP_NOEXCEPT 19262 { 19263 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExclusiveScissorNV && "Function <vkCmdSetExclusiveScissorNV> requires <VK_NV_scissor_exclusive>" ); 19264 19265 getDispatcher()->vkCmdSetExclusiveScissorNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 19266 firstExclusiveScissor, 19267 exclusiveScissors.size(), 19268 reinterpret_cast<const VkRect2D *>( exclusiveScissors.data() ) ); 19269 } 19270 19271 //=== VK_NV_device_diagnostic_checkpoints === 19272 19273 template <typename CheckpointMarkerType> setCheckpointNV(CheckpointMarkerType const & checkpointMarker) const19274 VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( CheckpointMarkerType const & checkpointMarker ) const VULKAN_HPP_NOEXCEPT 19275 { 19276 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCheckpointNV && "Function <vkCmdSetCheckpointNV> requires <VK_NV_device_diagnostic_checkpoints>" ); 19277 19278 getDispatcher()->vkCmdSetCheckpointNV( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const void *>( &checkpointMarker ) ); 19279 } 19280 getCheckpointDataNV() const19281 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> Queue::getCheckpointDataNV() const 19282 { 19283 VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointDataNV && 19284 "Function <vkGetQueueCheckpointDataNV> requires <VK_NV_device_diagnostic_checkpoints>" ); 19285 19286 std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> checkpointData; 19287 uint32_t checkpointDataCount; 19288 getDispatcher()->vkGetQueueCheckpointDataNV( static_cast<VkQueue>( m_queue ), &checkpointDataCount, nullptr ); 19289 checkpointData.resize( checkpointDataCount ); 19290 getDispatcher()->vkGetQueueCheckpointDataNV( 19291 static_cast<VkQueue>( m_queue ), &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) ); 19292 19293 VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); 19294 if ( checkpointDataCount < checkpointData.size() ) 19295 { 19296 checkpointData.resize( checkpointDataCount ); 19297 } 19298 return checkpointData; 19299 } 19300 19301 //=== VK_KHR_timeline_semaphore === 19302 getCounterValueKHR() const19303 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValueKHR() const 19304 { 19305 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreCounterValueKHR && 19306 "Function <vkGetSemaphoreCounterValueKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" ); 19307 19308 uint64_t value; 19309 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19310 getDispatcher()->vkGetSemaphoreCounterValueKHR( static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( m_semaphore ), &value ) ); 19311 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValueKHR" ); 19312 19313 return value; 19314 } 19315 waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo,uint64_t timeout) const19316 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, 19317 uint64_t timeout ) const 19318 { 19319 VULKAN_HPP_ASSERT( getDispatcher()->vkWaitSemaphoresKHR && "Function <vkWaitSemaphoresKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" ); 19320 19321 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19322 getDispatcher()->vkWaitSemaphoresKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) ); 19323 VULKAN_HPP_NAMESPACE::detail::resultCheck( 19324 result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); 19325 19326 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 19327 } 19328 signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo) const19329 VULKAN_HPP_INLINE void Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo ) const 19330 { 19331 VULKAN_HPP_ASSERT( getDispatcher()->vkSignalSemaphoreKHR && "Function <vkSignalSemaphoreKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" ); 19332 19333 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19334 getDispatcher()->vkSignalSemaphoreKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) ); 19335 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" ); 19336 } 19337 19338 //=== VK_INTEL_performance_query === 19339 initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo) const19340 VULKAN_HPP_INLINE void Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo ) const 19341 { 19342 VULKAN_HPP_ASSERT( getDispatcher()->vkInitializePerformanceApiINTEL && 19343 "Function <vkInitializePerformanceApiINTEL> requires <VK_INTEL_performance_query>" ); 19344 19345 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkInitializePerformanceApiINTEL( 19346 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) ); 19347 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" ); 19348 } 19349 uninitializePerformanceApiINTEL() const19350 VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT 19351 { 19352 VULKAN_HPP_ASSERT( getDispatcher()->vkUninitializePerformanceApiINTEL && 19353 "Function <vkUninitializePerformanceApiINTEL> requires <VK_INTEL_performance_query>" ); 19354 19355 getDispatcher()->vkUninitializePerformanceApiINTEL( static_cast<VkDevice>( m_device ) ); 19356 } 19357 setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo) const19358 VULKAN_HPP_INLINE void CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo ) const 19359 { 19360 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceMarkerINTEL && "Function <vkCmdSetPerformanceMarkerINTEL> requires <VK_INTEL_performance_query>" ); 19361 19362 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceMarkerINTEL( 19363 static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) ); 19364 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" ); 19365 } 19366 setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo) const19367 VULKAN_HPP_INLINE void CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo ) const 19368 { 19369 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL && 19370 "Function <vkCmdSetPerformanceStreamMarkerINTEL> requires <VK_INTEL_performance_query>" ); 19371 19372 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL( 19373 static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) ); 19374 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" ); 19375 } 19376 setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo) const19377 VULKAN_HPP_INLINE void CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo ) const 19378 { 19379 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPerformanceOverrideINTEL && 19380 "Function <vkCmdSetPerformanceOverrideINTEL> requires <VK_INTEL_performance_query>" ); 19381 19382 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCmdSetPerformanceOverrideINTEL( 19383 static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) ); 19384 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" ); 19385 } 19386 19387 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 19388 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL>::Type acquirePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo) const19389 Device::acquirePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & acquireInfo ) const 19390 VULKAN_HPP_RAII_CREATE_NOEXCEPT 19391 { 19392 VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; 19393 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19394 getDispatcher()->vkAcquirePerformanceConfigurationINTEL( static_cast<VkDevice>( m_device ), 19395 reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ), 19396 reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) ); 19397 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 19398 { 19399 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 19400 return VULKAN_HPP_UNEXPECTED( result ); 19401 # else 19402 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::acquirePerformanceConfigurationINTEL" ); 19403 # endif 19404 } 19405 19406 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL( 19407 *this, *reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ); 19408 } 19409 setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration) const19410 VULKAN_HPP_INLINE void Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration ) const 19411 { 19412 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL && 19413 "Function <vkQueueSetPerformanceConfigurationINTEL> requires <VK_INTEL_performance_query>" ); 19414 19415 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSetPerformanceConfigurationINTEL( 19416 static_cast<VkQueue>( m_queue ), static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) ); 19417 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" ); 19418 } 19419 19420 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PerformanceValueINTEL getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter) const19421 Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter ) const 19422 { 19423 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPerformanceParameterINTEL && "Function <vkGetPerformanceParameterINTEL> requires <VK_INTEL_performance_query>" ); 19424 19425 VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value; 19426 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPerformanceParameterINTEL( 19427 static_cast<VkDevice>( m_device ), static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( &value ) ) ); 19428 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" ); 19429 19430 return value; 19431 } 19432 19433 //=== VK_AMD_display_native_hdr === 19434 setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable) const19435 VULKAN_HPP_INLINE void SwapchainKHR::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT 19436 { 19437 VULKAN_HPP_ASSERT( getDispatcher()->vkSetLocalDimmingAMD && "Function <vkSetLocalDimmingAMD> requires <VK_AMD_display_native_hdr>" ); 19438 19439 getDispatcher()->vkSetLocalDimmingAMD( 19440 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), static_cast<VkBool32>( localDimmingEnable ) ); 19441 } 19442 19443 # if defined( VK_USE_PLATFORM_FUCHSIA ) 19444 //=== VK_FUCHSIA_imagepipe_surface === 19445 19446 VULKAN_HPP_NODISCARD 19447 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createImagePipeSurfaceFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const19448 Instance::createImagePipeSurfaceFUCHSIA( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & createInfo, 19449 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 19450 VULKAN_HPP_RAII_CREATE_NOEXCEPT 19451 { 19452 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 19453 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateImagePipeSurfaceFUCHSIA( 19454 static_cast<VkInstance>( m_instance ), 19455 reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ), 19456 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 19457 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 19458 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 19459 { 19460 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 19461 return VULKAN_HPP_UNEXPECTED( result ); 19462 # else 19463 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createImagePipeSurfaceFUCHSIA" ); 19464 # endif 19465 } 19466 19467 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 19468 } 19469 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 19470 19471 # if defined( VK_USE_PLATFORM_METAL_EXT ) 19472 //=== VK_EXT_metal_surface === 19473 19474 VULKAN_HPP_NODISCARD 19475 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createMetalSurfaceEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const19476 Instance::createMetalSurfaceEXT( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & createInfo, 19477 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 19478 VULKAN_HPP_RAII_CREATE_NOEXCEPT 19479 { 19480 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 19481 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateMetalSurfaceEXT( 19482 static_cast<VkInstance>( m_instance ), 19483 reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ), 19484 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 19485 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 19486 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 19487 { 19488 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 19489 return VULKAN_HPP_UNEXPECTED( result ); 19490 # else 19491 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createMetalSurfaceEXT" ); 19492 # endif 19493 } 19494 19495 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 19496 } 19497 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 19498 19499 //=== VK_KHR_fragment_shading_rate === 19500 19501 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> getFragmentShadingRatesKHR() const19502 PhysicalDevice::getFragmentShadingRatesKHR() const 19503 { 19504 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR && 19505 "Function <vkGetPhysicalDeviceFragmentShadingRatesKHR> requires <VK_KHR_fragment_shading_rate>" ); 19506 19507 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> fragmentShadingRates; 19508 uint32_t fragmentShadingRateCount; 19509 VULKAN_HPP_NAMESPACE::Result result; 19510 do 19511 { 19512 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR( 19513 static_cast<VkPhysicalDevice>( m_physicalDevice ), &fragmentShadingRateCount, nullptr ) ); 19514 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && fragmentShadingRateCount ) 19515 { 19516 fragmentShadingRates.resize( fragmentShadingRateCount ); 19517 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR( 19518 static_cast<VkPhysicalDevice>( m_physicalDevice ), 19519 &fragmentShadingRateCount, 19520 reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) ); 19521 } 19522 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 19523 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" ); 19524 VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); 19525 if ( fragmentShadingRateCount < fragmentShadingRates.size() ) 19526 { 19527 fragmentShadingRates.resize( fragmentShadingRateCount ); 19528 } 19529 return fragmentShadingRates; 19530 } 19531 19532 VULKAN_HPP_INLINE void setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D & fragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2]) const19533 CommandBuffer::setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D & fragmentSize, 19534 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT 19535 { 19536 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFragmentShadingRateKHR && 19537 "Function <vkCmdSetFragmentShadingRateKHR> requires <VK_KHR_fragment_shading_rate>" ); 19538 19539 getDispatcher()->vkCmdSetFragmentShadingRateKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 19540 reinterpret_cast<const VkExtent2D *>( &fragmentSize ), 19541 reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) ); 19542 } 19543 19544 //=== VK_KHR_dynamic_rendering_local_read === 19545 setRenderingAttachmentLocationsKHR(const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfoKHR & locationInfo) const19546 VULKAN_HPP_INLINE void CommandBuffer::setRenderingAttachmentLocationsKHR( 19547 const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfoKHR & locationInfo ) const VULKAN_HPP_NOEXCEPT 19548 { 19549 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRenderingAttachmentLocationsKHR && 19550 "Function <vkCmdSetRenderingAttachmentLocationsKHR> requires <VK_KHR_dynamic_rendering_local_read>" ); 19551 19552 getDispatcher()->vkCmdSetRenderingAttachmentLocationsKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 19553 reinterpret_cast<const VkRenderingAttachmentLocationInfoKHR *>( &locationInfo ) ); 19554 } 19555 setRenderingInputAttachmentIndicesKHR(const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfoKHR & locationInfo) const19556 VULKAN_HPP_INLINE void CommandBuffer::setRenderingInputAttachmentIndicesKHR( 19557 const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfoKHR & locationInfo ) const VULKAN_HPP_NOEXCEPT 19558 { 19559 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRenderingInputAttachmentIndicesKHR && 19560 "Function <vkCmdSetRenderingInputAttachmentIndicesKHR> requires <VK_KHR_dynamic_rendering_local_read>" ); 19561 19562 getDispatcher()->vkCmdSetRenderingInputAttachmentIndicesKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 19563 reinterpret_cast<const VkRenderingInputAttachmentIndexInfoKHR *>( &locationInfo ) ); 19564 } 19565 19566 //=== VK_EXT_buffer_device_address === 19567 19568 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const19569 Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 19570 { 19571 VULKAN_HPP_ASSERT( 19572 getDispatcher()->vkGetBufferDeviceAddressEXT && 19573 "Function <vkGetBufferDeviceAddressEXT> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" ); 19574 19575 VkDeviceAddress result = 19576 getDispatcher()->vkGetBufferDeviceAddressEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ); 19577 19578 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result ); 19579 } 19580 19581 //=== VK_EXT_tooling_info === 19582 getToolPropertiesEXT() const19583 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> PhysicalDevice::getToolPropertiesEXT() const 19584 { 19585 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT && 19586 "Function <vkGetPhysicalDeviceToolPropertiesEXT> requires <VK_EXT_tooling_info> or <VK_VERSION_1_3>" ); 19587 19588 std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> toolProperties; 19589 uint32_t toolCount; 19590 VULKAN_HPP_NAMESPACE::Result result; 19591 do 19592 { 19593 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19594 getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, nullptr ) ); 19595 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount ) 19596 { 19597 toolProperties.resize( toolCount ); 19598 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT( 19599 static_cast<VkPhysicalDevice>( m_physicalDevice ), &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) ); 19600 } 19601 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 19602 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" ); 19603 VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); 19604 if ( toolCount < toolProperties.size() ) 19605 { 19606 toolProperties.resize( toolCount ); 19607 } 19608 return toolProperties; 19609 } 19610 19611 //=== VK_KHR_present_wait === 19612 waitForPresent(uint64_t presentId,uint64_t timeout) const19613 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::waitForPresent( uint64_t presentId, uint64_t timeout ) const 19614 { 19615 VULKAN_HPP_ASSERT( getDispatcher()->vkWaitForPresentKHR && "Function <vkWaitForPresentKHR> requires <VK_KHR_present_wait>" ); 19616 19617 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19618 getDispatcher()->vkWaitForPresentKHR( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), presentId, timeout ) ); 19619 VULKAN_HPP_NAMESPACE::detail::resultCheck( 19620 result, 19621 VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::waitForPresent", 19622 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); 19623 19624 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 19625 } 19626 19627 //=== VK_NV_cooperative_matrix === 19628 19629 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> getCooperativeMatrixPropertiesNV() const19630 PhysicalDevice::getCooperativeMatrixPropertiesNV() const 19631 { 19632 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV && 19633 "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesNV> requires <VK_NV_cooperative_matrix>" ); 19634 19635 std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> properties; 19636 uint32_t propertyCount; 19637 VULKAN_HPP_NAMESPACE::Result result; 19638 do 19639 { 19640 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19641 getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 19642 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 19643 { 19644 properties.resize( propertyCount ); 19645 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( 19646 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) ); 19647 } 19648 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 19649 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); 19650 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 19651 if ( propertyCount < properties.size() ) 19652 { 19653 properties.resize( propertyCount ); 19654 } 19655 return properties; 19656 } 19657 19658 //=== VK_NV_coverage_reduction_mode === 19659 19660 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> getSupportedFramebufferMixedSamplesCombinationsNV() const19661 PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV() const 19662 { 19663 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV && 19664 "Function <vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV> requires <VK_NV_coverage_reduction_mode>" ); 19665 19666 std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> combinations; 19667 uint32_t combinationCount; 19668 VULKAN_HPP_NAMESPACE::Result result; 19669 do 19670 { 19671 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( 19672 static_cast<VkPhysicalDevice>( m_physicalDevice ), &combinationCount, nullptr ) ); 19673 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && combinationCount ) 19674 { 19675 combinations.resize( combinationCount ); 19676 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( 19677 static_cast<VkPhysicalDevice>( m_physicalDevice ), 19678 &combinationCount, 19679 reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) ); 19680 } 19681 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 19682 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); 19683 VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); 19684 if ( combinationCount < combinations.size() ) 19685 { 19686 combinations.resize( combinationCount ); 19687 } 19688 return combinations; 19689 } 19690 19691 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 19692 //=== VK_EXT_full_screen_exclusive === 19693 19694 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const19695 PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 19696 { 19697 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT && 19698 "Function <vkGetPhysicalDeviceSurfacePresentModes2EXT> requires <VK_EXT_full_screen_exclusive>" ); 19699 19700 std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> presentModes; 19701 uint32_t presentModeCount; 19702 VULKAN_HPP_NAMESPACE::Result result; 19703 do 19704 { 19705 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19706 getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), 19707 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 19708 &presentModeCount, 19709 nullptr ) ); 19710 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount ) 19711 { 19712 presentModes.resize( presentModeCount ); 19713 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19714 getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), 19715 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 19716 &presentModeCount, 19717 reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) ); 19718 } 19719 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 19720 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" ); 19721 VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); 19722 if ( presentModeCount < presentModes.size() ) 19723 { 19724 presentModes.resize( presentModeCount ); 19725 } 19726 return presentModes; 19727 } 19728 acquireFullScreenExclusiveModeEXT() const19729 VULKAN_HPP_INLINE void SwapchainKHR::acquireFullScreenExclusiveModeEXT() const 19730 { 19731 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireFullScreenExclusiveModeEXT && 19732 "Function <vkAcquireFullScreenExclusiveModeEXT> requires <VK_EXT_full_screen_exclusive>" ); 19733 19734 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19735 getDispatcher()->vkAcquireFullScreenExclusiveModeEXT( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) ) ); 19736 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireFullScreenExclusiveModeEXT" ); 19737 } 19738 releaseFullScreenExclusiveModeEXT() const19739 VULKAN_HPP_INLINE void SwapchainKHR::releaseFullScreenExclusiveModeEXT() const 19740 { 19741 VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseFullScreenExclusiveModeEXT && 19742 "Function <vkReleaseFullScreenExclusiveModeEXT> requires <VK_EXT_full_screen_exclusive>" ); 19743 19744 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19745 getDispatcher()->vkReleaseFullScreenExclusiveModeEXT( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ) ) ); 19746 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::releaseFullScreenExclusiveModeEXT" ); 19747 } 19748 19749 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo) const19750 Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo ) const 19751 { 19752 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT && 19753 "Function <vkGetDeviceGroupSurfacePresentModes2EXT> requires <VK_EXT_full_screen_exclusive>" ); 19754 19755 VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; 19756 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 19757 getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT( static_cast<VkDevice>( m_device ), 19758 reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), 19759 reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) ); 19760 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" ); 19761 19762 return modes; 19763 } 19764 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 19765 19766 //=== VK_EXT_headless_surface === 19767 19768 VULKAN_HPP_NODISCARD 19769 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createHeadlessSurfaceEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const19770 Instance::createHeadlessSurfaceEXT( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & createInfo, 19771 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 19772 VULKAN_HPP_RAII_CREATE_NOEXCEPT 19773 { 19774 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 19775 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateHeadlessSurfaceEXT( 19776 static_cast<VkInstance>( m_instance ), 19777 reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ), 19778 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 19779 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 19780 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 19781 { 19782 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 19783 return VULKAN_HPP_UNEXPECTED( result ); 19784 # else 19785 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createHeadlessSurfaceEXT" ); 19786 # endif 19787 } 19788 19789 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 19790 } 19791 19792 //=== VK_KHR_buffer_device_address === 19793 19794 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const19795 Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 19796 { 19797 VULKAN_HPP_ASSERT( 19798 getDispatcher()->vkGetBufferDeviceAddressKHR && 19799 "Function <vkGetBufferDeviceAddressKHR> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" ); 19800 19801 VkDeviceAddress result = 19802 getDispatcher()->vkGetBufferDeviceAddressKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ); 19803 19804 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result ); 19805 } 19806 19807 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info) const19808 Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 19809 { 19810 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferOpaqueCaptureAddressKHR && 19811 "Function <vkGetBufferOpaqueCaptureAddressKHR> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" ); 19812 19813 uint64_t result = 19814 getDispatcher()->vkGetBufferOpaqueCaptureAddressKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) ); 19815 19816 return result; 19817 } 19818 19819 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info) const19820 Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info ) const VULKAN_HPP_NOEXCEPT 19821 { 19822 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddressKHR && 19823 "Function <vkGetDeviceMemoryOpaqueCaptureAddressKHR> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" ); 19824 19825 uint64_t result = getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddressKHR( static_cast<VkDevice>( m_device ), 19826 reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) ); 19827 19828 return result; 19829 } 19830 19831 //=== VK_EXT_line_rasterization === 19832 setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern) const19833 VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT 19834 { 19835 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleEXT && 19836 "Function <vkCmdSetLineStippleEXT> requires <VK_EXT_line_rasterization> or <VK_KHR_line_rasterization>" ); 19837 19838 getDispatcher()->vkCmdSetLineStippleEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), lineStippleFactor, lineStipplePattern ); 19839 } 19840 19841 //=== VK_EXT_host_query_reset === 19842 resetEXT(uint32_t firstQuery,uint32_t queryCount) const19843 VULKAN_HPP_INLINE void QueryPool::resetEXT( uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT 19844 { 19845 VULKAN_HPP_ASSERT( getDispatcher()->vkResetQueryPoolEXT && "Function <vkResetQueryPoolEXT> requires <VK_EXT_host_query_reset> or <VK_VERSION_1_2>" ); 19846 19847 getDispatcher()->vkResetQueryPoolEXT( static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( m_queryPool ), firstQuery, queryCount ); 19848 } 19849 19850 //=== VK_EXT_extended_dynamic_state === 19851 setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode) const19852 VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT 19853 { 19854 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCullModeEXT && 19855 "Function <vkCmdSetCullModeEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19856 19857 getDispatcher()->vkCmdSetCullModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCullModeFlags>( cullMode ) ); 19858 } 19859 setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace) const19860 VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace ) const VULKAN_HPP_NOEXCEPT 19861 { 19862 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFrontFaceEXT && 19863 "Function <vkCmdSetFrontFaceEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19864 19865 getDispatcher()->vkCmdSetFrontFaceEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkFrontFace>( frontFace ) ); 19866 } 19867 setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology) const19868 VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT 19869 { 19870 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPrimitiveTopologyEXT && 19871 "Function <vkCmdSetPrimitiveTopologyEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19872 19873 getDispatcher()->vkCmdSetPrimitiveTopologyEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPrimitiveTopology>( primitiveTopology ) ); 19874 } 19875 setViewportWithCountEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports) const19876 VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( 19877 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports ) const VULKAN_HPP_NOEXCEPT 19878 { 19879 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWithCountEXT && 19880 "Function <vkCmdSetViewportWithCountEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19881 19882 getDispatcher()->vkCmdSetViewportWithCountEXT( 19883 static_cast<VkCommandBuffer>( m_commandBuffer ), viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) ); 19884 } 19885 19886 VULKAN_HPP_INLINE void setScissorWithCountEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors) const19887 CommandBuffer::setScissorWithCountEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors ) const VULKAN_HPP_NOEXCEPT 19888 { 19889 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetScissorWithCountEXT && 19890 "Function <vkCmdSetScissorWithCountEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19891 19892 getDispatcher()->vkCmdSetScissorWithCountEXT( 19893 static_cast<VkCommandBuffer>( m_commandBuffer ), scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) ); 19894 } 19895 19896 VULKAN_HPP_INLINE void bindVertexBuffers2EXT(uint32_t firstBinding,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides) const19897 CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, 19898 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers, 19899 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets, 19900 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes, 19901 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides ) const 19902 { 19903 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindVertexBuffers2EXT && 19904 "Function <vkCmdBindVertexBuffers2EXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19905 # ifdef VULKAN_HPP_NO_EXCEPTIONS 19906 VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); 19907 VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); 19908 VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() ); 19909 # else 19910 if ( buffers.size() != offsets.size() ) 19911 { 19912 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" ); 19913 } 19914 if ( !sizes.empty() && buffers.size() != sizes.size() ) 19915 { 19916 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" ); 19917 } 19918 if ( !strides.empty() && buffers.size() != strides.size() ) 19919 { 19920 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" ); 19921 } 19922 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 19923 19924 getDispatcher()->vkCmdBindVertexBuffers2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 19925 firstBinding, 19926 buffers.size(), 19927 reinterpret_cast<const VkBuffer *>( buffers.data() ), 19928 reinterpret_cast<const VkDeviceSize *>( offsets.data() ), 19929 reinterpret_cast<const VkDeviceSize *>( sizes.data() ), 19930 reinterpret_cast<const VkDeviceSize *>( strides.data() ) ); 19931 } 19932 setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable) const19933 VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT 19934 { 19935 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthTestEnableEXT && 19936 "Function <vkCmdSetDepthTestEnableEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19937 19938 getDispatcher()->vkCmdSetDepthTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthTestEnable ) ); 19939 } 19940 setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable) const19941 VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT 19942 { 19943 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthWriteEnableEXT && 19944 "Function <vkCmdSetDepthWriteEnableEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19945 19946 getDispatcher()->vkCmdSetDepthWriteEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthWriteEnable ) ); 19947 } 19948 setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp) const19949 VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT 19950 { 19951 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthCompareOpEXT && 19952 "Function <vkCmdSetDepthCompareOpEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19953 19954 getDispatcher()->vkCmdSetDepthCompareOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCompareOp>( depthCompareOp ) ); 19955 } 19956 setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable) const19957 VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT 19958 { 19959 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT && 19960 "Function <vkCmdSetDepthBoundsTestEnableEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19961 19962 getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBoundsTestEnable ) ); 19963 } 19964 setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable) const19965 VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT 19966 { 19967 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilTestEnableEXT && 19968 "Function <vkCmdSetStencilTestEnableEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19969 19970 getDispatcher()->vkCmdSetStencilTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stencilTestEnable ) ); 19971 } 19972 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) const19973 VULKAN_HPP_INLINE void CommandBuffer::setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, 19974 VULKAN_HPP_NAMESPACE::StencilOp failOp, 19975 VULKAN_HPP_NAMESPACE::StencilOp passOp, 19976 VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, 19977 VULKAN_HPP_NAMESPACE::CompareOp compareOp ) const VULKAN_HPP_NOEXCEPT 19978 { 19979 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetStencilOpEXT && 19980 "Function <vkCmdSetStencilOpEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 19981 19982 getDispatcher()->vkCmdSetStencilOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 19983 static_cast<VkStencilFaceFlags>( faceMask ), 19984 static_cast<VkStencilOp>( failOp ), 19985 static_cast<VkStencilOp>( passOp ), 19986 static_cast<VkStencilOp>( depthFailOp ), 19987 static_cast<VkCompareOp>( compareOp ) ); 19988 } 19989 19990 //=== VK_KHR_deferred_host_operations === 19991 19992 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 19993 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR>::Type createDeferredOperationKHR(VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const19994 Device::createDeferredOperationKHR( VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 19995 VULKAN_HPP_RAII_CREATE_NOEXCEPT 19996 { 19997 VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation; 19998 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDeferredOperationKHR( 19999 static_cast<VkDevice>( m_device ), 20000 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 20001 reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) ); 20002 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 20003 { 20004 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 20005 return VULKAN_HPP_UNEXPECTED( result ); 20006 # else 20007 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createDeferredOperationKHR" ); 20008 # endif 20009 } 20010 20011 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR( 20012 *this, *reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ), allocator ); 20013 } 20014 getMaxConcurrency() const20015 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t DeferredOperationKHR::getMaxConcurrency() const VULKAN_HPP_NOEXCEPT 20016 { 20017 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR && 20018 "Function <vkGetDeferredOperationMaxConcurrencyKHR> requires <VK_KHR_deferred_host_operations>" ); 20019 20020 uint32_t result = 20021 getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_operation ) ); 20022 20023 return result; 20024 } 20025 getResult() const20026 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::getResult() const VULKAN_HPP_NOEXCEPT 20027 { 20028 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeferredOperationResultKHR && 20029 "Function <vkGetDeferredOperationResultKHR> requires <VK_KHR_deferred_host_operations>" ); 20030 20031 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20032 getDispatcher()->vkGetDeferredOperationResultKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_operation ) ) ); 20033 20034 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 20035 } 20036 join() const20037 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::join() const 20038 { 20039 VULKAN_HPP_ASSERT( getDispatcher()->vkDeferredOperationJoinKHR && "Function <vkDeferredOperationJoinKHR> requires <VK_KHR_deferred_host_operations>" ); 20040 20041 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20042 getDispatcher()->vkDeferredOperationJoinKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( m_operation ) ) ); 20043 VULKAN_HPP_NAMESPACE::detail::resultCheck( 20044 result, 20045 VULKAN_HPP_NAMESPACE_STRING "::DeferredOperationKHR::join", 20046 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } ); 20047 20048 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 20049 } 20050 20051 //=== VK_KHR_pipeline_executable_properties === 20052 20053 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR> getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo) const20054 Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo ) const 20055 { 20056 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutablePropertiesKHR && 20057 "Function <vkGetPipelineExecutablePropertiesKHR> requires <VK_KHR_pipeline_executable_properties>" ); 20058 20059 std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR> properties; 20060 uint32_t executableCount; 20061 VULKAN_HPP_NAMESPACE::Result result; 20062 do 20063 { 20064 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutablePropertiesKHR( 20065 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) ); 20066 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && executableCount ) 20067 { 20068 properties.resize( executableCount ); 20069 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20070 getDispatcher()->vkGetPipelineExecutablePropertiesKHR( static_cast<VkDevice>( m_device ), 20071 reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), 20072 &executableCount, 20073 reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) ); 20074 } 20075 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 20076 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" ); 20077 VULKAN_HPP_ASSERT( executableCount <= properties.size() ); 20078 if ( executableCount < properties.size() ) 20079 { 20080 properties.resize( executableCount ); 20081 } 20082 return properties; 20083 } 20084 20085 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR> getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo) const20086 Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const 20087 { 20088 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutableStatisticsKHR && 20089 "Function <vkGetPipelineExecutableStatisticsKHR> requires <VK_KHR_pipeline_executable_properties>" ); 20090 20091 std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR> statistics; 20092 uint32_t statisticCount; 20093 VULKAN_HPP_NAMESPACE::Result result; 20094 do 20095 { 20096 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutableStatisticsKHR( 20097 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) ); 20098 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && statisticCount ) 20099 { 20100 statistics.resize( statisticCount ); 20101 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20102 getDispatcher()->vkGetPipelineExecutableStatisticsKHR( static_cast<VkDevice>( m_device ), 20103 reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), 20104 &statisticCount, 20105 reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) ); 20106 } 20107 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 20108 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" ); 20109 VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); 20110 if ( statisticCount < statistics.size() ) 20111 { 20112 statistics.resize( statisticCount ); 20113 } 20114 return statistics; 20115 } 20116 20117 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR> getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo) const20118 Device::getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo ) const 20119 { 20120 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR && 20121 "Function <vkGetPipelineExecutableInternalRepresentationsKHR> requires <VK_KHR_pipeline_executable_properties>" ); 20122 20123 std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR> internalRepresentations; 20124 uint32_t internalRepresentationCount; 20125 VULKAN_HPP_NAMESPACE::Result result; 20126 do 20127 { 20128 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20129 getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR( static_cast<VkDevice>( m_device ), 20130 reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), 20131 &internalRepresentationCount, 20132 nullptr ) ); 20133 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && internalRepresentationCount ) 20134 { 20135 internalRepresentations.resize( internalRepresentationCount ); 20136 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR( 20137 static_cast<VkDevice>( m_device ), 20138 reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), 20139 &internalRepresentationCount, 20140 reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) ); 20141 } 20142 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 20143 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" ); 20144 VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); 20145 if ( internalRepresentationCount < internalRepresentations.size() ) 20146 { 20147 internalRepresentations.resize( internalRepresentationCount ); 20148 } 20149 return internalRepresentations; 20150 } 20151 20152 //=== VK_EXT_host_image_copy === 20153 copyMemoryToImageEXT(const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT & copyMemoryToImageInfo) const20154 VULKAN_HPP_INLINE void Device::copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT & copyMemoryToImageInfo ) const 20155 { 20156 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToImageEXT && "Function <vkCopyMemoryToImageEXT> requires <VK_EXT_host_image_copy>" ); 20157 20158 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyMemoryToImageEXT( 20159 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyMemoryToImageInfoEXT *>( ©MemoryToImageInfo ) ) ); 20160 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToImageEXT" ); 20161 } 20162 copyImageToMemoryEXT(const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT & copyImageToMemoryInfo) const20163 VULKAN_HPP_INLINE void Device::copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT & copyImageToMemoryInfo ) const 20164 { 20165 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyImageToMemoryEXT && "Function <vkCopyImageToMemoryEXT> requires <VK_EXT_host_image_copy>" ); 20166 20167 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyImageToMemoryEXT( 20168 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyImageToMemoryInfoEXT *>( ©ImageToMemoryInfo ) ) ); 20169 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToMemoryEXT" ); 20170 } 20171 copyImageToImageEXT(const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT & copyImageToImageInfo) const20172 VULKAN_HPP_INLINE void Device::copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT & copyImageToImageInfo ) const 20173 { 20174 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyImageToImageEXT && "Function <vkCopyImageToImageEXT> requires <VK_EXT_host_image_copy>" ); 20175 20176 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyImageToImageEXT( 20177 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyImageToImageInfoEXT *>( ©ImageToImageInfo ) ) ); 20178 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToImageEXT" ); 20179 } 20180 transitionImageLayoutEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT> const & transitions) const20181 VULKAN_HPP_INLINE void Device::transitionImageLayoutEXT( 20182 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT> const & transitions ) const 20183 { 20184 VULKAN_HPP_ASSERT( getDispatcher()->vkTransitionImageLayoutEXT && "Function <vkTransitionImageLayoutEXT> requires <VK_EXT_host_image_copy>" ); 20185 20186 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkTransitionImageLayoutEXT( 20187 static_cast<VkDevice>( m_device ), transitions.size(), reinterpret_cast<const VkHostImageLayoutTransitionInfoEXT *>( transitions.data() ) ) ); 20188 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::transitionImageLayoutEXT" ); 20189 } 20190 20191 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR getSubresourceLayout2EXT(const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource) const20192 Image::getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT 20193 { 20194 VULKAN_HPP_ASSERT( 20195 getDispatcher()->vkGetImageSubresourceLayout2EXT && 20196 "Function <vkGetImageSubresourceLayout2EXT> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5>" ); 20197 20198 VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout; 20199 getDispatcher()->vkGetImageSubresourceLayout2EXT( static_cast<VkDevice>( m_device ), 20200 static_cast<VkImage>( m_image ), 20201 reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ), 20202 reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) ); 20203 20204 return layout; 20205 } 20206 20207 template <typename X, typename Y, typename... Z> 20208 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getSubresourceLayout2EXT(const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource) const20209 Image::getSubresourceLayout2EXT( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT 20210 { 20211 VULKAN_HPP_ASSERT( 20212 getDispatcher()->vkGetImageSubresourceLayout2EXT && 20213 "Function <vkGetImageSubresourceLayout2EXT> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5>" ); 20214 20215 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 20216 VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR & layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>(); 20217 getDispatcher()->vkGetImageSubresourceLayout2EXT( static_cast<VkDevice>( m_device ), 20218 static_cast<VkImage>( m_image ), 20219 reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ), 20220 reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) ); 20221 20222 return structureChain; 20223 } 20224 20225 //=== VK_KHR_map_memory2 === 20226 mapMemory2KHR(const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR & memoryMapInfo) const20227 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * Device::mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR & memoryMapInfo ) const 20228 { 20229 VULKAN_HPP_ASSERT( getDispatcher()->vkMapMemory2KHR && "Function <vkMapMemory2KHR> requires <VK_KHR_map_memory2>" ); 20230 20231 void * pData; 20232 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20233 getDispatcher()->vkMapMemory2KHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryMapInfoKHR *>( &memoryMapInfo ), &pData ) ); 20234 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory2KHR" ); 20235 20236 return pData; 20237 } 20238 unmapMemory2KHR(const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR & memoryUnmapInfo) const20239 VULKAN_HPP_INLINE void Device::unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR & memoryUnmapInfo ) const 20240 { 20241 VULKAN_HPP_ASSERT( getDispatcher()->vkUnmapMemory2KHR && "Function <vkUnmapMemory2KHR> requires <VK_KHR_map_memory2>" ); 20242 20243 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20244 getDispatcher()->vkUnmapMemory2KHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryUnmapInfoKHR *>( &memoryUnmapInfo ) ) ); 20245 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::unmapMemory2KHR" ); 20246 } 20247 20248 //=== VK_EXT_swapchain_maintenance1 === 20249 releaseSwapchainImagesEXT(const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT & releaseInfo) const20250 VULKAN_HPP_INLINE void Device::releaseSwapchainImagesEXT( const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT & releaseInfo ) const 20251 { 20252 VULKAN_HPP_ASSERT( getDispatcher()->vkReleaseSwapchainImagesEXT && "Function <vkReleaseSwapchainImagesEXT> requires <VK_EXT_swapchain_maintenance1>" ); 20253 20254 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkReleaseSwapchainImagesEXT( 20255 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT *>( &releaseInfo ) ) ); 20256 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseSwapchainImagesEXT" ); 20257 } 20258 20259 //=== VK_NV_device_generated_commands === 20260 20261 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info) const20262 Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT 20263 { 20264 VULKAN_HPP_ASSERT( getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV && 20265 "Function <vkGetGeneratedCommandsMemoryRequirementsNV> requires <VK_NV_device_generated_commands>" ); 20266 20267 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 20268 getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( static_cast<VkDevice>( m_device ), 20269 reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), 20270 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 20271 20272 return memoryRequirements; 20273 } 20274 20275 template <typename X, typename Y, typename... Z> 20276 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info) const20277 Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info ) const VULKAN_HPP_NOEXCEPT 20278 { 20279 VULKAN_HPP_ASSERT( getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV && 20280 "Function <vkGetGeneratedCommandsMemoryRequirementsNV> requires <VK_NV_device_generated_commands>" ); 20281 20282 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 20283 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 20284 getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV( static_cast<VkDevice>( m_device ), 20285 reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ), 20286 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 20287 20288 return structureChain; 20289 } 20290 20291 VULKAN_HPP_INLINE void preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo) const20292 CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT 20293 { 20294 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPreprocessGeneratedCommandsNV && 20295 "Function <vkCmdPreprocessGeneratedCommandsNV> requires <VK_NV_device_generated_commands>" ); 20296 20297 getDispatcher()->vkCmdPreprocessGeneratedCommandsNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 20298 reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) ); 20299 } 20300 20301 VULKAN_HPP_INLINE void executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo) const20302 CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, 20303 const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo ) const VULKAN_HPP_NOEXCEPT 20304 { 20305 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdExecuteGeneratedCommandsNV && 20306 "Function <vkCmdExecuteGeneratedCommandsNV> requires <VK_NV_device_generated_commands>" ); 20307 20308 getDispatcher()->vkCmdExecuteGeneratedCommandsNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 20309 static_cast<VkBool32>( isPreprocessed ), 20310 reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) ); 20311 } 20312 bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex) const20313 VULKAN_HPP_INLINE void CommandBuffer::bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 20314 VULKAN_HPP_NAMESPACE::Pipeline pipeline, 20315 uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT 20316 { 20317 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindPipelineShaderGroupNV && 20318 "Function <vkCmdBindPipelineShaderGroupNV> requires <VK_NV_device_generated_commands>" ); 20319 20320 getDispatcher()->vkCmdBindPipelineShaderGroupNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 20321 static_cast<VkPipelineBindPoint>( pipelineBindPoint ), 20322 static_cast<VkPipeline>( pipeline ), 20323 groupIndex ); 20324 } 20325 20326 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 20327 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV>::Type createIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const20328 Device::createIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & createInfo, 20329 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 20330 VULKAN_HPP_RAII_CREATE_NOEXCEPT 20331 { 20332 VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout; 20333 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateIndirectCommandsLayoutNV( 20334 static_cast<VkDevice>( m_device ), 20335 reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ), 20336 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 20337 reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) ); 20338 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 20339 { 20340 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 20341 return VULKAN_HPP_UNEXPECTED( result ); 20342 # else 20343 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createIndirectCommandsLayoutNV" ); 20344 # endif 20345 } 20346 20347 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV( 20348 *this, *reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ), allocator ); 20349 } 20350 20351 //=== VK_EXT_depth_bias_control === 20352 setDepthBias2EXT(const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo) const20353 VULKAN_HPP_INLINE void CommandBuffer::setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo ) const VULKAN_HPP_NOEXCEPT 20354 { 20355 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBias2EXT && "Function <vkCmdSetDepthBias2EXT> requires <VK_EXT_depth_bias_control>" ); 20356 20357 getDispatcher()->vkCmdSetDepthBias2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDepthBiasInfoEXT *>( &depthBiasInfo ) ); 20358 } 20359 20360 //=== VK_EXT_acquire_drm_display === 20361 acquireDrmDisplayEXT(int32_t drmFd,VULKAN_HPP_NAMESPACE::DisplayKHR display) const20362 VULKAN_HPP_INLINE void PhysicalDevice::acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display ) const 20363 { 20364 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireDrmDisplayEXT && "Function <vkAcquireDrmDisplayEXT> requires <VK_EXT_acquire_drm_display>" ); 20365 20366 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20367 getDispatcher()->vkAcquireDrmDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), drmFd, static_cast<VkDisplayKHR>( display ) ) ); 20368 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" ); 20369 } 20370 20371 VULKAN_HPP_NODISCARD 20372 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type getDrmDisplayEXT(int32_t drmFd,uint32_t connectorId) const20373 PhysicalDevice::getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 20374 { 20375 VULKAN_HPP_NAMESPACE::DisplayKHR display; 20376 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDrmDisplayEXT( 20377 static_cast<VkPhysicalDevice>( m_physicalDevice ), drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) ) ); 20378 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 20379 { 20380 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 20381 return VULKAN_HPP_UNEXPECTED( result ); 20382 # else 20383 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getDrmDisplayEXT" ); 20384 # endif 20385 } 20386 20387 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, *reinterpret_cast<VkDisplayKHR *>( &display ) ); 20388 } 20389 20390 //=== VK_EXT_private_data === 20391 20392 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 20393 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot>::Type createPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const20394 Device::createPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & createInfo, 20395 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 20396 VULKAN_HPP_RAII_CREATE_NOEXCEPT 20397 { 20398 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot; 20399 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreatePrivateDataSlotEXT( 20400 static_cast<VkDevice>( m_device ), 20401 reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ), 20402 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 20403 reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) ); 20404 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 20405 { 20406 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 20407 return VULKAN_HPP_UNEXPECTED( result ); 20408 # else 20409 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createPrivateDataSlotEXT" ); 20410 # endif 20411 } 20412 20413 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot( *this, *reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ), allocator ); 20414 } 20415 destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const20416 VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, 20417 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_NOEXCEPT 20418 { 20419 VULKAN_HPP_ASSERT( getDispatcher()->vkDestroyPrivateDataSlotEXT && 20420 "Function <vkDestroyPrivateDataSlotEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" ); 20421 20422 getDispatcher()->vkDestroyPrivateDataSlotEXT( 20423 static_cast<VkDevice>( m_device ), 20424 static_cast<VkPrivateDataSlot>( privateDataSlot ), 20425 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) ); 20426 } 20427 setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,uint64_t data) const20428 VULKAN_HPP_INLINE void Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 20429 uint64_t objectHandle, 20430 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot, 20431 uint64_t data ) const 20432 { 20433 VULKAN_HPP_ASSERT( getDispatcher()->vkSetPrivateDataEXT && "Function <vkSetPrivateDataEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" ); 20434 20435 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetPrivateDataEXT( 20436 static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) ); 20437 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" ); 20438 } 20439 getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot) const20440 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, 20441 uint64_t objectHandle, 20442 VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot ) const VULKAN_HPP_NOEXCEPT 20443 { 20444 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPrivateDataEXT && "Function <vkGetPrivateDataEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" ); 20445 20446 uint64_t data; 20447 getDispatcher()->vkGetPrivateDataEXT( 20448 static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data ); 20449 20450 return data; 20451 } 20452 20453 //=== VK_KHR_video_encode_queue === 20454 getVideoEncodeQualityLevelPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo) const20455 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( 20456 const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const 20457 { 20458 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR && 20459 "Function <vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR> requires <VK_KHR_video_encode_queue>" ); 20460 20461 VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR qualityLevelProperties; 20462 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( 20463 static_cast<VkPhysicalDevice>( m_physicalDevice ), 20464 reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( &qualityLevelInfo ), 20465 reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( &qualityLevelProperties ) ) ); 20466 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" ); 20467 20468 return qualityLevelProperties; 20469 } 20470 20471 template <typename X, typename Y, typename... Z> getVideoEncodeQualityLevelPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo) const20472 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( 20473 const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo ) const 20474 { 20475 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR && 20476 "Function <vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR> requires <VK_KHR_video_encode_queue>" ); 20477 20478 StructureChain<X, Y, Z...> structureChain; 20479 VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR & qualityLevelProperties = 20480 structureChain.template get<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>(); 20481 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( 20482 static_cast<VkPhysicalDevice>( m_physicalDevice ), 20483 reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( &qualityLevelInfo ), 20484 reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( &qualityLevelProperties ) ) ); 20485 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" ); 20486 20487 return structureChain; 20488 } 20489 20490 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t>> getEncodedVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo) const20491 Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const 20492 { 20493 VULKAN_HPP_ASSERT( getDispatcher()->vkGetEncodedVideoSessionParametersKHR && 20494 "Function <vkGetEncodedVideoSessionParametersKHR> requires <VK_KHR_video_encode_queue>" ); 20495 20496 std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t>> data_; 20497 VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR & feedbackInfo = data_.first; 20498 std::vector<uint8_t> & data = data_.second; 20499 size_t dataSize; 20500 VULKAN_HPP_NAMESPACE::Result result; 20501 do 20502 { 20503 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEncodedVideoSessionParametersKHR( 20504 static_cast<VkDevice>( m_device ), 20505 reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ), 20506 reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ), 20507 &dataSize, 20508 nullptr ) ); 20509 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) 20510 { 20511 data.resize( dataSize ); 20512 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEncodedVideoSessionParametersKHR( 20513 static_cast<VkDevice>( m_device ), 20514 reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ), 20515 reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ), 20516 &dataSize, 20517 reinterpret_cast<void *>( data.data() ) ) ); 20518 } 20519 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 20520 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" ); 20521 20522 return data_; 20523 } 20524 20525 template <typename X, typename Y, typename... Z> 20526 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t>> getEncodedVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo) const20527 Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo ) const 20528 { 20529 VULKAN_HPP_ASSERT( getDispatcher()->vkGetEncodedVideoSessionParametersKHR && 20530 "Function <vkGetEncodedVideoSessionParametersKHR> requires <VK_KHR_video_encode_queue>" ); 20531 20532 std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t>> data_; 20533 VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR & feedbackInfo = 20534 data_.first.template get<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>(); 20535 std::vector<uint8_t> & data = data_.second; 20536 size_t dataSize; 20537 VULKAN_HPP_NAMESPACE::Result result; 20538 do 20539 { 20540 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEncodedVideoSessionParametersKHR( 20541 static_cast<VkDevice>( m_device ), 20542 reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ), 20543 reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ), 20544 &dataSize, 20545 nullptr ) ); 20546 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) 20547 { 20548 data.resize( dataSize ); 20549 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetEncodedVideoSessionParametersKHR( 20550 static_cast<VkDevice>( m_device ), 20551 reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ), 20552 reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ), 20553 &dataSize, 20554 reinterpret_cast<void *>( data.data() ) ) ); 20555 } 20556 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 20557 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" ); 20558 20559 return data_; 20560 } 20561 encodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo) const20562 VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo ) const VULKAN_HPP_NOEXCEPT 20563 { 20564 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdEncodeVideoKHR && "Function <vkCmdEncodeVideoKHR> requires <VK_KHR_video_encode_queue>" ); 20565 20566 getDispatcher()->vkCmdEncodeVideoKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkVideoEncodeInfoKHR *>( &encodeInfo ) ); 20567 } 20568 20569 # if defined( VK_ENABLE_BETA_EXTENSIONS ) 20570 //=== VK_NV_cuda_kernel_launch === 20571 20572 VULKAN_HPP_NODISCARD 20573 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV>::Type createCudaModuleNV(VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const20574 Device::createCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const & createInfo, 20575 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 20576 VULKAN_HPP_RAII_CREATE_NOEXCEPT 20577 { 20578 VULKAN_HPP_NAMESPACE::CudaModuleNV module; 20579 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCudaModuleNV( 20580 static_cast<VkDevice>( m_device ), 20581 reinterpret_cast<const VkCudaModuleCreateInfoNV *>( &createInfo ), 20582 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 20583 reinterpret_cast<VkCudaModuleNV *>( &module ) ) ); 20584 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 20585 { 20586 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 20587 return VULKAN_HPP_UNEXPECTED( result ); 20588 # else 20589 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCudaModuleNV" ); 20590 # endif 20591 } 20592 20593 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaModuleNV( *this, *reinterpret_cast<VkCudaModuleNV *>( &module ), allocator ); 20594 } 20595 getCache() const20596 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> CudaModuleNV::getCache() const 20597 { 20598 VULKAN_HPP_ASSERT( getDispatcher()->vkGetCudaModuleCacheNV && "Function <vkGetCudaModuleCacheNV> requires <VK_NV_cuda_kernel_launch>" ); 20599 20600 std::vector<uint8_t> cacheData; 20601 size_t cacheSize; 20602 VULKAN_HPP_NAMESPACE::Result result; 20603 do 20604 { 20605 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 20606 getDispatcher()->vkGetCudaModuleCacheNV( static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( m_module ), &cacheSize, nullptr ) ); 20607 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && cacheSize ) 20608 { 20609 cacheData.resize( cacheSize ); 20610 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCudaModuleCacheNV( 20611 static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( m_module ), &cacheSize, reinterpret_cast<void *>( cacheData.data() ) ) ); 20612 } 20613 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 20614 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CudaModuleNV::getCache" ); 20615 VULKAN_HPP_ASSERT( cacheSize <= cacheData.size() ); 20616 if ( cacheSize < cacheData.size() ) 20617 { 20618 cacheData.resize( cacheSize ); 20619 } 20620 return cacheData; 20621 } 20622 20623 VULKAN_HPP_NODISCARD 20624 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV>::Type createCudaFunctionNV(VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const20625 Device::createCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const & createInfo, 20626 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 20627 VULKAN_HPP_RAII_CREATE_NOEXCEPT 20628 { 20629 VULKAN_HPP_NAMESPACE::CudaFunctionNV function; 20630 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateCudaFunctionNV( 20631 static_cast<VkDevice>( m_device ), 20632 reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( &createInfo ), 20633 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 20634 reinterpret_cast<VkCudaFunctionNV *>( &function ) ) ); 20635 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 20636 { 20637 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 20638 return VULKAN_HPP_UNEXPECTED( result ); 20639 # else 20640 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createCudaFunctionNV" ); 20641 # endif 20642 } 20643 20644 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CudaFunctionNV( *this, *reinterpret_cast<VkCudaFunctionNV *>( &function ), allocator ); 20645 } 20646 cudaLaunchKernelNV(const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo) const20647 VULKAN_HPP_INLINE void CommandBuffer::cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo ) const VULKAN_HPP_NOEXCEPT 20648 { 20649 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCudaLaunchKernelNV && "Function <vkCmdCudaLaunchKernelNV> requires <VK_NV_cuda_kernel_launch>" ); 20650 20651 getDispatcher()->vkCmdCudaLaunchKernelNV( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCudaLaunchInfoNV *>( &launchInfo ) ); 20652 } 20653 # endif /*VK_ENABLE_BETA_EXTENSIONS*/ 20654 20655 # if defined( VK_USE_PLATFORM_METAL_EXT ) 20656 //=== VK_EXT_metal_objects === 20657 exportMetalObjectsEXT() const20658 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT Device::exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT 20659 { 20660 VULKAN_HPP_ASSERT( getDispatcher()->vkExportMetalObjectsEXT && "Function <vkExportMetalObjectsEXT> requires <VK_EXT_metal_objects>" ); 20661 20662 VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT metalObjectsInfo; 20663 getDispatcher()->vkExportMetalObjectsEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<VkExportMetalObjectsInfoEXT *>( &metalObjectsInfo ) ); 20664 20665 return metalObjectsInfo; 20666 } 20667 20668 template <typename X, typename Y, typename... Z> exportMetalObjectsEXT() const20669 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::exportMetalObjectsEXT() const VULKAN_HPP_NOEXCEPT 20670 { 20671 VULKAN_HPP_ASSERT( getDispatcher()->vkExportMetalObjectsEXT && "Function <vkExportMetalObjectsEXT> requires <VK_EXT_metal_objects>" ); 20672 20673 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 20674 VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT & metalObjectsInfo = structureChain.template get<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT>(); 20675 getDispatcher()->vkExportMetalObjectsEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<VkExportMetalObjectsInfoEXT *>( &metalObjectsInfo ) ); 20676 20677 return structureChain; 20678 } 20679 # endif /*VK_USE_PLATFORM_METAL_EXT*/ 20680 20681 //=== VK_KHR_synchronization2 === 20682 setEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo) const20683 VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, 20684 const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT 20685 { 20686 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetEvent2KHR && "Function <vkCmdSetEvent2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 20687 20688 getDispatcher()->vkCmdSetEvent2KHR( 20689 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) ); 20690 } 20691 resetEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask) const20692 VULKAN_HPP_INLINE void CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event event, 20693 VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask ) const VULKAN_HPP_NOEXCEPT 20694 { 20695 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResetEvent2KHR && "Function <vkCmdResetEvent2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 20696 20697 getDispatcher()->vkCmdResetEvent2KHR( 20698 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2>( stageMask ) ); 20699 } 20700 20701 VULKAN_HPP_INLINE void waitEvents2KHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos) const20702 CommandBuffer::waitEvents2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events, 20703 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos ) const 20704 { 20705 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWaitEvents2KHR && "Function <vkCmdWaitEvents2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 20706 # ifdef VULKAN_HPP_NO_EXCEPTIONS 20707 VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() ); 20708 # else 20709 if ( events.size() != dependencyInfos.size() ) 20710 { 20711 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()" ); 20712 } 20713 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 20714 20715 getDispatcher()->vkCmdWaitEvents2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 20716 events.size(), 20717 reinterpret_cast<const VkEvent *>( events.data() ), 20718 reinterpret_cast<const VkDependencyInfo *>( dependencyInfos.data() ) ); 20719 } 20720 pipelineBarrier2KHR(const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo) const20721 VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo ) const VULKAN_HPP_NOEXCEPT 20722 { 20723 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPipelineBarrier2KHR && 20724 "Function <vkCmdPipelineBarrier2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 20725 20726 getDispatcher()->vkCmdPipelineBarrier2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 20727 reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) ); 20728 } 20729 writeTimestamp2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query) const20730 VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage, 20731 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 20732 uint32_t query ) const VULKAN_HPP_NOEXCEPT 20733 { 20734 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteTimestamp2KHR && 20735 "Function <vkCmdWriteTimestamp2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 20736 20737 getDispatcher()->vkCmdWriteTimestamp2KHR( 20738 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlags2>( stage ), static_cast<VkQueryPool>( queryPool ), query ); 20739 } 20740 submit2KHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,VULKAN_HPP_NAMESPACE::Fence fence) const20741 VULKAN_HPP_INLINE void Queue::submit2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits, 20742 VULKAN_HPP_NAMESPACE::Fence fence ) const 20743 { 20744 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueSubmit2KHR && "Function <vkQueueSubmit2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" ); 20745 20746 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkQueueSubmit2KHR( 20747 static_cast<VkQueue>( m_queue ), submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) ) ); 20748 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" ); 20749 } 20750 writeBufferMarker2AMD(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,uint32_t marker) const20751 VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage, 20752 VULKAN_HPP_NAMESPACE::Buffer dstBuffer, 20753 VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, 20754 uint32_t marker ) const VULKAN_HPP_NOEXCEPT 20755 { 20756 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteBufferMarker2AMD && "Function <vkCmdWriteBufferMarker2AMD> requires <VK_KHR_synchronization2>" ); 20757 20758 getDispatcher()->vkCmdWriteBufferMarker2AMD( static_cast<VkCommandBuffer>( m_commandBuffer ), 20759 static_cast<VkPipelineStageFlags2>( stage ), 20760 static_cast<VkBuffer>( dstBuffer ), 20761 static_cast<VkDeviceSize>( dstOffset ), 20762 marker ); 20763 } 20764 getCheckpointData2NV() const20765 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> Queue::getCheckpointData2NV() const 20766 { 20767 VULKAN_HPP_ASSERT( getDispatcher()->vkGetQueueCheckpointData2NV && "Function <vkGetQueueCheckpointData2NV> requires <VK_KHR_synchronization2>" ); 20768 20769 std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> checkpointData; 20770 uint32_t checkpointDataCount; 20771 getDispatcher()->vkGetQueueCheckpointData2NV( static_cast<VkQueue>( m_queue ), &checkpointDataCount, nullptr ); 20772 checkpointData.resize( checkpointDataCount ); 20773 getDispatcher()->vkGetQueueCheckpointData2NV( 20774 static_cast<VkQueue>( m_queue ), &checkpointDataCount, reinterpret_cast<VkCheckpointData2NV *>( checkpointData.data() ) ); 20775 20776 VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); 20777 if ( checkpointDataCount < checkpointData.size() ) 20778 { 20779 checkpointData.resize( checkpointDataCount ); 20780 } 20781 return checkpointData; 20782 } 20783 20784 //=== VK_EXT_descriptor_buffer === 20785 getSizeEXT() const20786 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize DescriptorSetLayout::getSizeEXT() const VULKAN_HPP_NOEXCEPT 20787 { 20788 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutSizeEXT && "Function <vkGetDescriptorSetLayoutSizeEXT> requires <VK_EXT_descriptor_buffer>" ); 20789 20790 VULKAN_HPP_NAMESPACE::DeviceSize layoutSizeInBytes; 20791 getDispatcher()->vkGetDescriptorSetLayoutSizeEXT( static_cast<VkDevice>( m_device ), 20792 static_cast<VkDescriptorSetLayout>( m_descriptorSetLayout ), 20793 reinterpret_cast<VkDeviceSize *>( &layoutSizeInBytes ) ); 20794 20795 return layoutSizeInBytes; 20796 } 20797 20798 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize getBindingOffsetEXT(uint32_t binding) const20799 DescriptorSetLayout::getBindingOffsetEXT( uint32_t binding ) const VULKAN_HPP_NOEXCEPT 20800 { 20801 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutBindingOffsetEXT && 20802 "Function <vkGetDescriptorSetLayoutBindingOffsetEXT> requires <VK_EXT_descriptor_buffer>" ); 20803 20804 VULKAN_HPP_NAMESPACE::DeviceSize offset; 20805 getDispatcher()->vkGetDescriptorSetLayoutBindingOffsetEXT( 20806 static_cast<VkDevice>( m_device ), static_cast<VkDescriptorSetLayout>( m_descriptorSetLayout ), binding, reinterpret_cast<VkDeviceSize *>( &offset ) ); 20807 20808 return offset; 20809 } 20810 getDescriptorEXT(const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,size_t dataSize,void * pDescriptor) const20811 VULKAN_HPP_INLINE void Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo, 20812 size_t dataSize, 20813 void * pDescriptor ) const VULKAN_HPP_NOEXCEPT 20814 { 20815 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorEXT && "Function <vkGetDescriptorEXT> requires <VK_EXT_descriptor_buffer>" ); 20816 20817 getDispatcher()->vkGetDescriptorEXT( 20818 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDescriptorGetInfoEXT *>( &descriptorInfo ), dataSize, pDescriptor ); 20819 } 20820 20821 template <typename DescriptorType> 20822 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DescriptorType getDescriptorEXT(const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo) const20823 Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo ) const VULKAN_HPP_NOEXCEPT 20824 { 20825 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorEXT && "Function <vkGetDescriptorEXT> requires <VK_EXT_descriptor_buffer>" ); 20826 20827 DescriptorType descriptor; 20828 getDispatcher()->vkGetDescriptorEXT( static_cast<VkDevice>( m_device ), 20829 reinterpret_cast<const VkDescriptorGetInfoEXT *>( &descriptorInfo ), 20830 sizeof( DescriptorType ), 20831 reinterpret_cast<void *>( &descriptor ) ); 20832 20833 return descriptor; 20834 } 20835 bindDescriptorBuffersEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT> const & bindingInfos) const20836 VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBuffersEXT( 20837 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT> const & bindingInfos ) const VULKAN_HPP_NOEXCEPT 20838 { 20839 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorBuffersEXT && "Function <vkCmdBindDescriptorBuffersEXT> requires <VK_EXT_descriptor_buffer>" ); 20840 20841 getDispatcher()->vkCmdBindDescriptorBuffersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 20842 bindingInfos.size(), 20843 reinterpret_cast<const VkDescriptorBufferBindingInfoEXT *>( bindingInfos.data() ) ); 20844 } 20845 20846 VULKAN_HPP_INLINE void setDescriptorBufferOffsetsEXT(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & bufferIndices,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets) const20847 CommandBuffer::setDescriptorBufferOffsetsEXT( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 20848 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 20849 uint32_t firstSet, 20850 VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & bufferIndices, 20851 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets ) const 20852 { 20853 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDescriptorBufferOffsetsEXT && 20854 "Function <vkCmdSetDescriptorBufferOffsetsEXT> requires <VK_EXT_descriptor_buffer>" ); 20855 # ifdef VULKAN_HPP_NO_EXCEPTIONS 20856 VULKAN_HPP_ASSERT( bufferIndices.size() == offsets.size() ); 20857 # else 20858 if ( bufferIndices.size() != offsets.size() ) 20859 { 20860 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setDescriptorBufferOffsetsEXT: bufferIndices.size() != offsets.size()" ); 20861 } 20862 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 20863 20864 getDispatcher()->vkCmdSetDescriptorBufferOffsetsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 20865 static_cast<VkPipelineBindPoint>( pipelineBindPoint ), 20866 static_cast<VkPipelineLayout>( layout ), 20867 firstSet, 20868 bufferIndices.size(), 20869 bufferIndices.data(), 20870 reinterpret_cast<const VkDeviceSize *>( offsets.data() ) ); 20871 } 20872 bindDescriptorBufferEmbeddedSamplersEXT(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set) const20873 VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBufferEmbeddedSamplersEXT( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 20874 VULKAN_HPP_NAMESPACE::PipelineLayout layout, 20875 uint32_t set ) const VULKAN_HPP_NOEXCEPT 20876 { 20877 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorBufferEmbeddedSamplersEXT && 20878 "Function <vkCmdBindDescriptorBufferEmbeddedSamplersEXT> requires <VK_EXT_descriptor_buffer>" ); 20879 20880 getDispatcher()->vkCmdBindDescriptorBufferEmbeddedSamplersEXT( 20881 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set ); 20882 } 20883 20884 template <typename DataType> 20885 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType getBufferOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT & info) const20886 Device::getBufferOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT & info ) const 20887 { 20888 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferOpaqueCaptureDescriptorDataEXT && 20889 "Function <vkGetBufferOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" ); 20890 20891 DataType data; 20892 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetBufferOpaqueCaptureDescriptorDataEXT( 20893 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( &info ), &data ) ); 20894 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferOpaqueCaptureDescriptorDataEXT" ); 20895 20896 return data; 20897 } 20898 20899 template <typename DataType> 20900 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType getImageOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT & info) const20901 Device::getImageOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT & info ) const 20902 { 20903 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageOpaqueCaptureDescriptorDataEXT && 20904 "Function <vkGetImageOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" ); 20905 20906 DataType data; 20907 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageOpaqueCaptureDescriptorDataEXT( 20908 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT *>( &info ), &data ) ); 20909 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageOpaqueCaptureDescriptorDataEXT" ); 20910 20911 return data; 20912 } 20913 20914 template <typename DataType> 20915 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType getImageViewOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT & info) const20916 Device::getImageViewOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT & info ) const 20917 { 20918 VULKAN_HPP_ASSERT( getDispatcher()->vkGetImageViewOpaqueCaptureDescriptorDataEXT && 20919 "Function <vkGetImageViewOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" ); 20920 20921 DataType data; 20922 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetImageViewOpaqueCaptureDescriptorDataEXT( 20923 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT *>( &info ), &data ) ); 20924 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewOpaqueCaptureDescriptorDataEXT" ); 20925 20926 return data; 20927 } 20928 20929 template <typename DataType> 20930 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType getSamplerOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT & info) const20931 Device::getSamplerOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT & info ) const 20932 { 20933 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSamplerOpaqueCaptureDescriptorDataEXT && 20934 "Function <vkGetSamplerOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" ); 20935 20936 DataType data; 20937 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSamplerOpaqueCaptureDescriptorDataEXT( 20938 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT *>( &info ), &data ) ); 20939 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSamplerOpaqueCaptureDescriptorDataEXT" ); 20940 20941 return data; 20942 } 20943 20944 template <typename DataType> getAccelerationStructureOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT & info) const20945 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT( 20946 const VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT & info ) const 20947 { 20948 VULKAN_HPP_ASSERT( getDispatcher()->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT && 20949 "Function <vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" ); 20950 20951 DataType data; 20952 VULKAN_HPP_NAMESPACE::Result result = 20953 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT( 20954 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( &info ), &data ) ); 20955 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT" ); 20956 20957 return data; 20958 } 20959 20960 //=== VK_NV_fragment_shading_rate_enums === 20961 20962 VULKAN_HPP_INLINE void setFragmentShadingRateEnumNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2]) const20963 CommandBuffer::setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, 20964 const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT 20965 { 20966 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetFragmentShadingRateEnumNV && 20967 "Function <vkCmdSetFragmentShadingRateEnumNV> requires <VK_NV_fragment_shading_rate_enums>" ); 20968 20969 getDispatcher()->vkCmdSetFragmentShadingRateEnumNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 20970 static_cast<VkFragmentShadingRateNV>( shadingRate ), 20971 reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) ); 20972 } 20973 20974 //=== VK_EXT_mesh_shader === 20975 drawMeshTasksEXT(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const20976 VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksEXT( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT 20977 { 20978 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksEXT && "Function <vkCmdDrawMeshTasksEXT> requires <VK_EXT_mesh_shader>" ); 20979 20980 getDispatcher()->vkCmdDrawMeshTasksEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ ); 20981 } 20982 drawMeshTasksIndirectEXT(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride) const20983 VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectEXT( VULKAN_HPP_NAMESPACE::Buffer buffer, 20984 VULKAN_HPP_NAMESPACE::DeviceSize offset, 20985 uint32_t drawCount, 20986 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 20987 { 20988 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectEXT && "Function <vkCmdDrawMeshTasksIndirectEXT> requires <VK_EXT_mesh_shader>" ); 20989 20990 getDispatcher()->vkCmdDrawMeshTasksIndirectEXT( 20991 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride ); 20992 } 20993 drawMeshTasksIndirectCountEXT(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride) const20994 VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountEXT( VULKAN_HPP_NAMESPACE::Buffer buffer, 20995 VULKAN_HPP_NAMESPACE::DeviceSize offset, 20996 VULKAN_HPP_NAMESPACE::Buffer countBuffer, 20997 VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, 20998 uint32_t maxDrawCount, 20999 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 21000 { 21001 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMeshTasksIndirectCountEXT && "Function <vkCmdDrawMeshTasksIndirectCountEXT> requires <VK_EXT_mesh_shader>" ); 21002 21003 getDispatcher()->vkCmdDrawMeshTasksIndirectCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 21004 static_cast<VkBuffer>( buffer ), 21005 static_cast<VkDeviceSize>( offset ), 21006 static_cast<VkBuffer>( countBuffer ), 21007 static_cast<VkDeviceSize>( countBufferOffset ), 21008 maxDrawCount, 21009 stride ); 21010 } 21011 21012 //=== VK_KHR_copy_commands2 === 21013 copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo) const21014 VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo ) const VULKAN_HPP_NOEXCEPT 21015 { 21016 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBuffer2KHR && "Function <vkCmdCopyBuffer2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 21017 21018 getDispatcher()->vkCmdCopyBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyBufferInfo2 *>( ©BufferInfo ) ); 21019 } 21020 copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo) const21021 VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo ) const VULKAN_HPP_NOEXCEPT 21022 { 21023 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImage2KHR && "Function <vkCmdCopyImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 21024 21025 getDispatcher()->vkCmdCopyImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyImageInfo2 *>( ©ImageInfo ) ); 21026 } 21027 21028 VULKAN_HPP_INLINE void copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo) const21029 CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT 21030 { 21031 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyBufferToImage2KHR && 21032 "Function <vkCmdCopyBufferToImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 21033 21034 getDispatcher()->vkCmdCopyBufferToImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 21035 reinterpret_cast<const VkCopyBufferToImageInfo2 *>( ©BufferToImageInfo ) ); 21036 } 21037 21038 VULKAN_HPP_INLINE void copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo) const21039 CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT 21040 { 21041 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyImageToBuffer2KHR && 21042 "Function <vkCmdCopyImageToBuffer2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 21043 21044 getDispatcher()->vkCmdCopyImageToBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 21045 reinterpret_cast<const VkCopyImageToBufferInfo2 *>( ©ImageToBufferInfo ) ); 21046 } 21047 blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo) const21048 VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo ) const VULKAN_HPP_NOEXCEPT 21049 { 21050 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBlitImage2KHR && "Function <vkCmdBlitImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 21051 21052 getDispatcher()->vkCmdBlitImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkBlitImageInfo2 *>( &blitImageInfo ) ); 21053 } 21054 resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo) const21055 VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo ) const VULKAN_HPP_NOEXCEPT 21056 { 21057 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdResolveImage2KHR && "Function <vkCmdResolveImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" ); 21058 21059 getDispatcher()->vkCmdResolveImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 21060 reinterpret_cast<const VkResolveImageInfo2 *>( &resolveImageInfo ) ); 21061 } 21062 21063 //=== VK_EXT_device_fault === 21064 21065 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT> getFaultInfoEXT() const21066 Device::getFaultInfoEXT() const 21067 { 21068 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceFaultInfoEXT && "Function <vkGetDeviceFaultInfoEXT> requires <VK_EXT_device_fault>" ); 21069 21070 std::pair<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT, VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT> data_; 21071 VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT & faultCounts = data_.first; 21072 VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT & faultInfo = data_.second; 21073 VULKAN_HPP_NAMESPACE::Result result; 21074 do 21075 { 21076 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21077 getDispatcher()->vkGetDeviceFaultInfoEXT( m_device, reinterpret_cast<VkDeviceFaultCountsEXT *>( &faultCounts ), nullptr ) ); 21078 if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) 21079 { 21080 std::free( faultInfo.pAddressInfos ); 21081 if ( faultCounts.addressInfoCount ) 21082 { 21083 faultInfo.pAddressInfos = reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT *>( 21084 std::malloc( faultCounts.addressInfoCount * sizeof( VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT ) ) ); 21085 } 21086 std::free( faultInfo.pVendorInfos ); 21087 if ( faultCounts.vendorInfoCount ) 21088 { 21089 faultInfo.pVendorInfos = reinterpret_cast<VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT *>( 21090 std::malloc( faultCounts.vendorInfoCount * sizeof( VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT ) ) ); 21091 } 21092 std::free( faultInfo.pVendorBinaryData ); 21093 if ( faultCounts.vendorBinarySize ) 21094 { 21095 faultInfo.pVendorBinaryData = std::malloc( faultCounts.vendorBinarySize ); 21096 } 21097 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceFaultInfoEXT( 21098 m_device, reinterpret_cast<VkDeviceFaultCountsEXT *>( &faultCounts ), reinterpret_cast<VkDeviceFaultInfoEXT *>( &faultInfo ) ) ); 21099 } 21100 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 21101 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 21102 VULKAN_HPP_NAMESPACE_STRING "::Device::getFaultInfoEXT", 21103 { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete } ); 21104 21105 return data_; 21106 } 21107 21108 # if defined( VK_USE_PLATFORM_WIN32_KHR ) 21109 //=== VK_NV_acquire_winrt_display === 21110 acquireWinrtNV() const21111 VULKAN_HPP_INLINE void DisplayKHR::acquireWinrtNV() const 21112 { 21113 VULKAN_HPP_ASSERT( getDispatcher()->vkAcquireWinrtDisplayNV && "Function <vkAcquireWinrtDisplayNV> requires <VK_NV_acquire_winrt_display>" ); 21114 21115 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21116 getDispatcher()->vkAcquireWinrtDisplayNV( static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( m_display ) ) ); 21117 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::acquireWinrtNV" ); 21118 } 21119 21120 VULKAN_HPP_NODISCARD 21121 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>::Type getWinrtDisplayNV(uint32_t deviceRelativeId) const21122 PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 21123 { 21124 VULKAN_HPP_NAMESPACE::DisplayKHR display; 21125 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetWinrtDisplayNV( 21126 static_cast<VkPhysicalDevice>( m_physicalDevice ), deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) ); 21127 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 21128 { 21129 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 21130 return VULKAN_HPP_UNEXPECTED( result ); 21131 # else 21132 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "PhysicalDevice::getWinrtDisplayNV" ); 21133 # endif 21134 } 21135 21136 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR( *this, *reinterpret_cast<VkDisplayKHR *>( &display ) ); 21137 } 21138 # endif /*VK_USE_PLATFORM_WIN32_KHR*/ 21139 21140 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT ) 21141 //=== VK_EXT_directfb_surface === 21142 21143 VULKAN_HPP_NODISCARD 21144 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createDirectFBSurfaceEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const21145 Instance::createDirectFBSurfaceEXT( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & createInfo, 21146 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 21147 VULKAN_HPP_RAII_CREATE_NOEXCEPT 21148 { 21149 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 21150 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateDirectFBSurfaceEXT( 21151 static_cast<VkInstance>( m_instance ), 21152 reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ), 21153 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 21154 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 21155 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 21156 { 21157 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 21158 return VULKAN_HPP_UNEXPECTED( result ); 21159 # else 21160 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createDirectFBSurfaceEXT" ); 21161 # endif 21162 } 21163 21164 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 21165 } 21166 21167 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB & dfb) const21168 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb ) const VULKAN_HPP_NOEXCEPT 21169 { 21170 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT && 21171 "Function <vkGetPhysicalDeviceDirectFBPresentationSupportEXT> requires <VK_EXT_directfb_surface>" ); 21172 21173 VkBool32 result = 21174 getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &dfb ); 21175 21176 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result ); 21177 } 21178 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ 21179 21180 //=== VK_EXT_vertex_input_dynamic_state === 21181 setVertexInputEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const & vertexBindingDescriptions,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & vertexAttributeDescriptions) const21182 VULKAN_HPP_INLINE void CommandBuffer::setVertexInputEXT( 21183 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const & vertexBindingDescriptions, 21184 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & vertexAttributeDescriptions ) const 21185 VULKAN_HPP_NOEXCEPT 21186 { 21187 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetVertexInputEXT && 21188 "Function <vkCmdSetVertexInputEXT> requires <VK_EXT_shader_object> or <VK_EXT_vertex_input_dynamic_state>" ); 21189 21190 getDispatcher()->vkCmdSetVertexInputEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 21191 vertexBindingDescriptions.size(), 21192 reinterpret_cast<const VkVertexInputBindingDescription2EXT *>( vertexBindingDescriptions.data() ), 21193 vertexAttributeDescriptions.size(), 21194 reinterpret_cast<const VkVertexInputAttributeDescription2EXT *>( vertexAttributeDescriptions.data() ) ); 21195 } 21196 21197 # if defined( VK_USE_PLATFORM_FUCHSIA ) 21198 //=== VK_FUCHSIA_external_memory === 21199 21200 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t getMemoryZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo) const21201 Device::getMemoryZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const 21202 { 21203 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA && "Function <vkGetMemoryZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_memory>" ); 21204 21205 zx_handle_t zirconHandle; 21206 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryZirconHandleFUCHSIA( 21207 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) ); 21208 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" ); 21209 21210 return zirconHandle; 21211 } 21212 21213 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA getMemoryZirconHandlePropertiesFUCHSIA(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle) const21214 Device::getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle ) const 21215 { 21216 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA && 21217 "Function <vkGetMemoryZirconHandlePropertiesFUCHSIA> requires <VK_FUCHSIA_external_memory>" ); 21218 21219 VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties; 21220 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA( 21221 static_cast<VkDevice>( m_device ), 21222 static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), 21223 zirconHandle, 21224 reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( &memoryZirconHandleProperties ) ) ); 21225 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" ); 21226 21227 return memoryZirconHandleProperties; 21228 } 21229 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 21230 21231 # if defined( VK_USE_PLATFORM_FUCHSIA ) 21232 //=== VK_FUCHSIA_external_semaphore === 21233 21234 VULKAN_HPP_INLINE void importSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo) const21235 Device::importSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo ) const 21236 { 21237 VULKAN_HPP_ASSERT( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA && 21238 "Function <vkImportSemaphoreZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_semaphore>" ); 21239 21240 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA( 21241 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( &importSemaphoreZirconHandleInfo ) ) ); 21242 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" ); 21243 } 21244 21245 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t getSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo) const21246 Device::getSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo ) const 21247 { 21248 VULKAN_HPP_ASSERT( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA && 21249 "Function <vkGetSemaphoreZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_semaphore>" ); 21250 21251 zx_handle_t zirconHandle; 21252 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA( 21253 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) ); 21254 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" ); 21255 21256 return zirconHandle; 21257 } 21258 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 21259 21260 # if defined( VK_USE_PLATFORM_FUCHSIA ) 21261 //=== VK_FUCHSIA_buffer_collection === 21262 21263 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 21264 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA>::Type createBufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const21265 Device::createBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const & createInfo, 21266 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 21267 VULKAN_HPP_RAII_CREATE_NOEXCEPT 21268 { 21269 VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection; 21270 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateBufferCollectionFUCHSIA( 21271 static_cast<VkDevice>( m_device ), 21272 reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ), 21273 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 21274 reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) ) ); 21275 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 21276 { 21277 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 21278 return VULKAN_HPP_UNEXPECTED( result ); 21279 # else 21280 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createBufferCollectionFUCHSIA" ); 21281 # endif 21282 } 21283 21284 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA( 21285 *this, *reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ), allocator ); 21286 } 21287 setImageConstraints(const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo) const21288 VULKAN_HPP_INLINE void BufferCollectionFUCHSIA::setImageConstraints( const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo ) const 21289 { 21290 VULKAN_HPP_ASSERT( getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA && 21291 "Function <vkSetBufferCollectionImageConstraintsFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" ); 21292 21293 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21294 getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA( static_cast<VkDevice>( m_device ), 21295 static_cast<VkBufferCollectionFUCHSIA>( m_collection ), 21296 reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) ) ); 21297 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setImageConstraints" ); 21298 } 21299 21300 VULKAN_HPP_INLINE void setBufferConstraints(const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo) const21301 BufferCollectionFUCHSIA::setBufferConstraints( const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo ) const 21302 { 21303 VULKAN_HPP_ASSERT( getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA && 21304 "Function <vkSetBufferCollectionBufferConstraintsFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" ); 21305 21306 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21307 getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA( static_cast<VkDevice>( m_device ), 21308 static_cast<VkBufferCollectionFUCHSIA>( m_collection ), 21309 reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( &bufferConstraintsInfo ) ) ); 21310 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setBufferConstraints" ); 21311 } 21312 getProperties() const21313 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA BufferCollectionFUCHSIA::getProperties() const 21314 { 21315 VULKAN_HPP_ASSERT( getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA && 21316 "Function <vkGetBufferCollectionPropertiesFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" ); 21317 21318 VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA properties; 21319 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21320 getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA( static_cast<VkDevice>( m_device ), 21321 static_cast<VkBufferCollectionFUCHSIA>( m_collection ), 21322 reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( &properties ) ) ); 21323 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::getProperties" ); 21324 21325 return properties; 21326 } 21327 # endif /*VK_USE_PLATFORM_FUCHSIA*/ 21328 21329 //=== VK_HUAWEI_subpass_shading === 21330 getSubpassShadingMaxWorkgroupSizeHUAWEI() const21331 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI() const 21332 { 21333 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI && 21334 "Function <vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI> requires <VK_HUAWEI_subpass_shading>" ); 21335 21336 VULKAN_HPP_NAMESPACE::Extent2D maxWorkgroupSize; 21337 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( 21338 static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( m_renderPass ), reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) ); 21339 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI" ); 21340 21341 return maxWorkgroupSize; 21342 } 21343 subpassShadingHUAWEI() const21344 VULKAN_HPP_INLINE void CommandBuffer::subpassShadingHUAWEI() const VULKAN_HPP_NOEXCEPT 21345 { 21346 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSubpassShadingHUAWEI && "Function <vkCmdSubpassShadingHUAWEI> requires <VK_HUAWEI_subpass_shading>" ); 21347 21348 getDispatcher()->vkCmdSubpassShadingHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ) ); 21349 } 21350 21351 //=== VK_HUAWEI_invocation_mask === 21352 bindInvocationMaskHUAWEI(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout) const21353 VULKAN_HPP_INLINE void CommandBuffer::bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView imageView, 21354 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT 21355 { 21356 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindInvocationMaskHUAWEI && "Function <vkCmdBindInvocationMaskHUAWEI> requires <VK_HUAWEI_invocation_mask>" ); 21357 21358 getDispatcher()->vkCmdBindInvocationMaskHUAWEI( 21359 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) ); 21360 } 21361 21362 //=== VK_NV_external_memory_rdma === 21363 21364 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RemoteAddressNV getMemoryRemoteAddressNV(const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo) const21365 Device::getMemoryRemoteAddressNV( const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo ) const 21366 { 21367 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMemoryRemoteAddressNV && "Function <vkGetMemoryRemoteAddressNV> requires <VK_NV_external_memory_rdma>" ); 21368 21369 VULKAN_HPP_NAMESPACE::RemoteAddressNV address; 21370 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21371 getDispatcher()->vkGetMemoryRemoteAddressNV( static_cast<VkDevice>( m_device ), 21372 reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ), 21373 reinterpret_cast<VkRemoteAddressNV *>( &address ) ) ); 21374 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" ); 21375 21376 return address; 21377 } 21378 21379 //=== VK_EXT_pipeline_properties === 21380 21381 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::BaseOutStructure getPipelinePropertiesEXT(const VULKAN_HPP_NAMESPACE::PipelineInfoEXT & pipelineInfo) const21382 Device::getPipelinePropertiesEXT( const VULKAN_HPP_NAMESPACE::PipelineInfoEXT & pipelineInfo ) const 21383 { 21384 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelinePropertiesEXT && "Function <vkGetPipelinePropertiesEXT> requires <VK_EXT_pipeline_properties>" ); 21385 21386 VULKAN_HPP_NAMESPACE::BaseOutStructure pipelineProperties; 21387 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21388 getDispatcher()->vkGetPipelinePropertiesEXT( static_cast<VkDevice>( m_device ), 21389 reinterpret_cast<const VkPipelineInfoEXT *>( &pipelineInfo ), 21390 reinterpret_cast<VkBaseOutStructure *>( &pipelineProperties ) ) ); 21391 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelinePropertiesEXT" ); 21392 21393 return pipelineProperties; 21394 } 21395 21396 //=== VK_EXT_extended_dynamic_state2 === 21397 setPatchControlPointsEXT(uint32_t patchControlPoints) const21398 VULKAN_HPP_INLINE void CommandBuffer::setPatchControlPointsEXT( uint32_t patchControlPoints ) const VULKAN_HPP_NOEXCEPT 21399 { 21400 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPatchControlPointsEXT && 21401 "Function <vkCmdSetPatchControlPointsEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object>" ); 21402 21403 getDispatcher()->vkCmdSetPatchControlPointsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), patchControlPoints ); 21404 } 21405 setRasterizerDiscardEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable) const21406 VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable ) const VULKAN_HPP_NOEXCEPT 21407 { 21408 VULKAN_HPP_ASSERT( 21409 getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT && 21410 "Function <vkCmdSetRasterizerDiscardEnableEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 21411 21412 getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( rasterizerDiscardEnable ) ); 21413 } 21414 setDepthBiasEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable) const21415 VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable ) const VULKAN_HPP_NOEXCEPT 21416 { 21417 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthBiasEnableEXT && 21418 "Function <vkCmdSetDepthBiasEnableEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 21419 21420 getDispatcher()->vkCmdSetDepthBiasEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBiasEnable ) ); 21421 } 21422 setLogicOpEXT(VULKAN_HPP_NAMESPACE::LogicOp logicOp) const21423 VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp ) const VULKAN_HPP_NOEXCEPT 21424 { 21425 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLogicOpEXT && 21426 "Function <vkCmdSetLogicOpEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object>" ); 21427 21428 getDispatcher()->vkCmdSetLogicOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkLogicOp>( logicOp ) ); 21429 } 21430 setPrimitiveRestartEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable) const21431 VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable ) const VULKAN_HPP_NOEXCEPT 21432 { 21433 VULKAN_HPP_ASSERT( 21434 getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT && 21435 "Function <vkCmdSetPrimitiveRestartEnableEXT> requires <VK_EXT_extended_dynamic_state2> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" ); 21436 21437 getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( primitiveRestartEnable ) ); 21438 } 21439 21440 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 21441 //=== VK_QNX_screen_surface === 21442 21443 VULKAN_HPP_NODISCARD 21444 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR>::Type createScreenSurfaceQNX(VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const21445 Instance::createScreenSurfaceQNX( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & createInfo, 21446 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 21447 VULKAN_HPP_RAII_CREATE_NOEXCEPT 21448 { 21449 VULKAN_HPP_NAMESPACE::SurfaceKHR surface; 21450 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateScreenSurfaceQNX( 21451 static_cast<VkInstance>( m_instance ), 21452 reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ), 21453 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 21454 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) ); 21455 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 21456 { 21457 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 21458 return VULKAN_HPP_UNEXPECTED( result ); 21459 # else 21460 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Instance::createScreenSurfaceQNX" ); 21461 # endif 21462 } 21463 21464 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, *reinterpret_cast<VkSurfaceKHR *>( &surface ), allocator ); 21465 } 21466 21467 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 getScreenPresentationSupportQNX(uint32_t queueFamilyIndex,struct _screen_window & window) const21468 PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window ) const VULKAN_HPP_NOEXCEPT 21469 { 21470 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX && 21471 "Function <vkGetPhysicalDeviceScreenPresentationSupportQNX> requires <VK_QNX_screen_surface>" ); 21472 21473 VkBool32 result = 21474 getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, &window ); 21475 21476 return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result ); 21477 } 21478 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 21479 21480 //=== VK_EXT_color_write_enable === 21481 setColorWriteEnableEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables) const21482 VULKAN_HPP_INLINE void CommandBuffer::setColorWriteEnableEXT( 21483 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables ) const VULKAN_HPP_NOEXCEPT 21484 { 21485 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorWriteEnableEXT && "Function <vkCmdSetColorWriteEnableEXT> requires <VK_EXT_color_write_enable>" ); 21486 21487 getDispatcher()->vkCmdSetColorWriteEnableEXT( 21488 static_cast<VkCommandBuffer>( m_commandBuffer ), colorWriteEnables.size(), reinterpret_cast<const VkBool32 *>( colorWriteEnables.data() ) ); 21489 } 21490 21491 //=== VK_KHR_ray_tracing_maintenance1 === 21492 traceRaysIndirect2KHR(VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress) const21493 VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirect2KHR( VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT 21494 { 21495 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdTraceRaysIndirect2KHR && "Function <vkCmdTraceRaysIndirect2KHR> requires <VK_KHR_ray_tracing_maintenance1>" ); 21496 21497 getDispatcher()->vkCmdTraceRaysIndirect2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( indirectDeviceAddress ) ); 21498 } 21499 21500 //=== VK_EXT_multi_draw === 21501 21502 VULKAN_HPP_INLINE void drawMultiEXT(VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const & vertexInfo,uint32_t instanceCount,uint32_t firstInstance) const21503 CommandBuffer::drawMultiEXT( VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const & vertexInfo, 21504 uint32_t instanceCount, 21505 uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT 21506 { 21507 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMultiEXT && "Function <vkCmdDrawMultiEXT> requires <VK_EXT_multi_draw>" ); 21508 21509 getDispatcher()->vkCmdDrawMultiEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 21510 vertexInfo.size(), 21511 reinterpret_cast<const VkMultiDrawInfoEXT *>( vertexInfo.data() ), 21512 instanceCount, 21513 firstInstance, 21514 vertexInfo.stride() ); 21515 } 21516 21517 VULKAN_HPP_INLINE void drawMultiIndexedEXT(VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const & indexInfo,uint32_t instanceCount,uint32_t firstInstance,Optional<const int32_t> vertexOffset) const21518 CommandBuffer::drawMultiIndexedEXT( VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const & indexInfo, 21519 uint32_t instanceCount, 21520 uint32_t firstInstance, 21521 Optional<const int32_t> vertexOffset ) const VULKAN_HPP_NOEXCEPT 21522 { 21523 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawMultiIndexedEXT && "Function <vkCmdDrawMultiIndexedEXT> requires <VK_EXT_multi_draw>" ); 21524 21525 getDispatcher()->vkCmdDrawMultiIndexedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 21526 indexInfo.size(), 21527 reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( indexInfo.data() ), 21528 instanceCount, 21529 firstInstance, 21530 indexInfo.stride(), 21531 static_cast<const int32_t *>( vertexOffset ) ); 21532 } 21533 21534 //=== VK_EXT_opacity_micromap === 21535 21536 VULKAN_HPP_NODISCARD 21537 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::MicromapEXT>::Type createMicromapEXT(VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const21538 Device::createMicromapEXT( VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const & createInfo, 21539 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 21540 VULKAN_HPP_RAII_CREATE_NOEXCEPT 21541 { 21542 VULKAN_HPP_NAMESPACE::MicromapEXT micromap; 21543 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateMicromapEXT( 21544 static_cast<VkDevice>( m_device ), 21545 reinterpret_cast<const VkMicromapCreateInfoEXT *>( &createInfo ), 21546 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 21547 reinterpret_cast<VkMicromapEXT *>( µmap ) ) ); 21548 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 21549 { 21550 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 21551 return VULKAN_HPP_UNEXPECTED( result ); 21552 # else 21553 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createMicromapEXT" ); 21554 # endif 21555 } 21556 21557 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::MicromapEXT( *this, *reinterpret_cast<VkMicromapEXT *>( µmap ), allocator ); 21558 } 21559 buildMicromapsEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos) const21560 VULKAN_HPP_INLINE void CommandBuffer::buildMicromapsEXT( 21561 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos ) const VULKAN_HPP_NOEXCEPT 21562 { 21563 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBuildMicromapsEXT && "Function <vkCmdBuildMicromapsEXT> requires <VK_EXT_opacity_micromap>" ); 21564 21565 getDispatcher()->vkCmdBuildMicromapsEXT( 21566 static_cast<VkCommandBuffer>( m_commandBuffer ), infos.size(), reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) ); 21567 } 21568 21569 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result buildMicromapsEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos) const21570 Device::buildMicromapsEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 21571 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos ) const 21572 { 21573 VULKAN_HPP_ASSERT( getDispatcher()->vkBuildMicromapsEXT && "Function <vkBuildMicromapsEXT> requires <VK_EXT_opacity_micromap>" ); 21574 21575 VULKAN_HPP_NAMESPACE::Result result = 21576 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkBuildMicromapsEXT( static_cast<VkDevice>( m_device ), 21577 static_cast<VkDeferredOperationKHR>( deferredOperation ), 21578 infos.size(), 21579 reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) ) ); 21580 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 21581 VULKAN_HPP_NAMESPACE_STRING "::Device::buildMicromapsEXT", 21582 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 21583 VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, 21584 VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); 21585 21586 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 21587 } 21588 copyMicromapEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info) const21589 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 21590 const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info ) const 21591 { 21592 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMicromapEXT && "Function <vkCopyMicromapEXT> requires <VK_EXT_opacity_micromap>" ); 21593 21594 VULKAN_HPP_NAMESPACE::Result result = 21595 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCopyMicromapEXT( static_cast<VkDevice>( m_device ), 21596 static_cast<VkDeferredOperationKHR>( deferredOperation ), 21597 reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) ) ); 21598 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 21599 VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapEXT", 21600 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 21601 VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, 21602 VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); 21603 21604 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 21605 } 21606 21607 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result copyMicromapToMemoryEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info) const21608 Device::copyMicromapToMemoryEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 21609 const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info ) const 21610 { 21611 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMicromapToMemoryEXT && "Function <vkCopyMicromapToMemoryEXT> requires <VK_EXT_opacity_micromap>" ); 21612 21613 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21614 getDispatcher()->vkCopyMicromapToMemoryEXT( static_cast<VkDevice>( m_device ), 21615 static_cast<VkDeferredOperationKHR>( deferredOperation ), 21616 reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) ) ); 21617 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 21618 VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapToMemoryEXT", 21619 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 21620 VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, 21621 VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); 21622 21623 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 21624 } 21625 21626 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result copyMemoryToMicromapEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info) const21627 Device::copyMemoryToMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, 21628 const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info ) const 21629 { 21630 VULKAN_HPP_ASSERT( getDispatcher()->vkCopyMemoryToMicromapEXT && "Function <vkCopyMemoryToMicromapEXT> requires <VK_EXT_opacity_micromap>" ); 21631 21632 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 21633 getDispatcher()->vkCopyMemoryToMicromapEXT( static_cast<VkDevice>( m_device ), 21634 static_cast<VkDeferredOperationKHR>( deferredOperation ), 21635 reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) ) ); 21636 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, 21637 VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToMicromapEXT", 21638 { VULKAN_HPP_NAMESPACE::Result::eSuccess, 21639 VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, 21640 VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); 21641 21642 return static_cast<VULKAN_HPP_NAMESPACE::Result>( result ); 21643 } 21644 21645 template <typename DataType> 21646 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType> writeMicromapsPropertiesEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,size_t stride) const21647 Device::writeMicromapsPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps, 21648 VULKAN_HPP_NAMESPACE::QueryType queryType, 21649 size_t dataSize, 21650 size_t stride ) const 21651 { 21652 VULKAN_HPP_ASSERT( getDispatcher()->vkWriteMicromapsPropertiesEXT && "Function <vkWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" ); 21653 21654 VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 ); 21655 std::vector<DataType> data( dataSize / sizeof( DataType ) ); 21656 VULKAN_HPP_NAMESPACE::Result result = 21657 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWriteMicromapsPropertiesEXT( static_cast<VkDevice>( m_device ), 21658 micromaps.size(), 21659 reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ), 21660 static_cast<VkQueryType>( queryType ), 21661 data.size() * sizeof( DataType ), 21662 reinterpret_cast<void *>( data.data() ), 21663 stride ) ); 21664 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertiesEXT" ); 21665 21666 return data; 21667 } 21668 21669 template <typename DataType> 21670 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DataType writeMicromapsPropertyEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t stride) const21671 Device::writeMicromapsPropertyEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps, 21672 VULKAN_HPP_NAMESPACE::QueryType queryType, 21673 size_t stride ) const 21674 { 21675 VULKAN_HPP_ASSERT( getDispatcher()->vkWriteMicromapsPropertiesEXT && "Function <vkWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" ); 21676 21677 DataType data; 21678 VULKAN_HPP_NAMESPACE::Result result = 21679 static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkWriteMicromapsPropertiesEXT( static_cast<VkDevice>( m_device ), 21680 micromaps.size(), 21681 reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ), 21682 static_cast<VkQueryType>( queryType ), 21683 sizeof( DataType ), 21684 reinterpret_cast<void *>( &data ), 21685 stride ) ); 21686 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertyEXT" ); 21687 21688 return data; 21689 } 21690 copyMicromapEXT(const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info) const21691 VULKAN_HPP_INLINE void CommandBuffer::copyMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info ) const VULKAN_HPP_NOEXCEPT 21692 { 21693 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMicromapEXT && "Function <vkCmdCopyMicromapEXT> requires <VK_EXT_opacity_micromap>" ); 21694 21695 getDispatcher()->vkCmdCopyMicromapEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) ); 21696 } 21697 copyMicromapToMemoryEXT(const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info) const21698 VULKAN_HPP_INLINE void CommandBuffer::copyMicromapToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info ) const VULKAN_HPP_NOEXCEPT 21699 { 21700 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMicromapToMemoryEXT && "Function <vkCmdCopyMicromapToMemoryEXT> requires <VK_EXT_opacity_micromap>" ); 21701 21702 getDispatcher()->vkCmdCopyMicromapToMemoryEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 21703 reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) ); 21704 } 21705 copyMemoryToMicromapEXT(const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info) const21706 VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info ) const VULKAN_HPP_NOEXCEPT 21707 { 21708 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToMicromapEXT && "Function <vkCmdCopyMemoryToMicromapEXT> requires <VK_EXT_opacity_micromap>" ); 21709 21710 getDispatcher()->vkCmdCopyMemoryToMicromapEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 21711 reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) ); 21712 } 21713 21714 VULKAN_HPP_INLINE void writeMicromapsPropertiesEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery) const21715 CommandBuffer::writeMicromapsPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps, 21716 VULKAN_HPP_NAMESPACE::QueryType queryType, 21717 VULKAN_HPP_NAMESPACE::QueryPool queryPool, 21718 uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT 21719 { 21720 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdWriteMicromapsPropertiesEXT && 21721 "Function <vkCmdWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" ); 21722 21723 getDispatcher()->vkCmdWriteMicromapsPropertiesEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 21724 micromaps.size(), 21725 reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ), 21726 static_cast<VkQueryType>( queryType ), 21727 static_cast<VkQueryPool>( queryPool ), 21728 firstQuery ); 21729 } 21730 21731 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR getMicromapCompatibilityEXT(const VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT & versionInfo) const21732 Device::getMicromapCompatibilityEXT( const VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT & versionInfo ) const VULKAN_HPP_NOEXCEPT 21733 { 21734 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceMicromapCompatibilityEXT && 21735 "Function <vkGetDeviceMicromapCompatibilityEXT> requires <VK_EXT_opacity_micromap>" ); 21736 21737 VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility; 21738 getDispatcher()->vkGetDeviceMicromapCompatibilityEXT( static_cast<VkDevice>( m_device ), 21739 reinterpret_cast<const VkMicromapVersionInfoEXT *>( &versionInfo ), 21740 reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>( &compatibility ) ); 21741 21742 return compatibility; 21743 } 21744 21745 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT getMicromapBuildSizesEXT(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT & buildInfo) const21746 Device::getMicromapBuildSizesEXT( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, 21747 const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT & buildInfo ) const VULKAN_HPP_NOEXCEPT 21748 { 21749 VULKAN_HPP_ASSERT( getDispatcher()->vkGetMicromapBuildSizesEXT && "Function <vkGetMicromapBuildSizesEXT> requires <VK_EXT_opacity_micromap>" ); 21750 21751 VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT sizeInfo; 21752 getDispatcher()->vkGetMicromapBuildSizesEXT( static_cast<VkDevice>( m_device ), 21753 static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ), 21754 reinterpret_cast<const VkMicromapBuildInfoEXT *>( &buildInfo ), 21755 reinterpret_cast<VkMicromapBuildSizesInfoEXT *>( &sizeInfo ) ); 21756 21757 return sizeInfo; 21758 } 21759 21760 //=== VK_HUAWEI_cluster_culling_shader === 21761 drawClusterHUAWEI(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ) const21762 VULKAN_HPP_INLINE void CommandBuffer::drawClusterHUAWEI( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT 21763 { 21764 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawClusterHUAWEI && "Function <vkCmdDrawClusterHUAWEI> requires <VK_HUAWEI_cluster_culling_shader>" ); 21765 21766 getDispatcher()->vkCmdDrawClusterHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ ); 21767 } 21768 drawClusterIndirectHUAWEI(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset) const21769 VULKAN_HPP_INLINE void CommandBuffer::drawClusterIndirectHUAWEI( VULKAN_HPP_NAMESPACE::Buffer buffer, 21770 VULKAN_HPP_NAMESPACE::DeviceSize offset ) const VULKAN_HPP_NOEXCEPT 21771 { 21772 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDrawClusterIndirectHUAWEI && 21773 "Function <vkCmdDrawClusterIndirectHUAWEI> requires <VK_HUAWEI_cluster_culling_shader>" ); 21774 21775 getDispatcher()->vkCmdDrawClusterIndirectHUAWEI( 21776 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) ); 21777 } 21778 21779 //=== VK_EXT_pageable_device_local_memory === 21780 setPriorityEXT(float priority) const21781 VULKAN_HPP_INLINE void DeviceMemory::setPriorityEXT( float priority ) const VULKAN_HPP_NOEXCEPT 21782 { 21783 VULKAN_HPP_ASSERT( getDispatcher()->vkSetDeviceMemoryPriorityEXT && 21784 "Function <vkSetDeviceMemoryPriorityEXT> requires <VK_EXT_pageable_device_local_memory>" ); 21785 21786 getDispatcher()->vkSetDeviceMemoryPriorityEXT( static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( m_memory ), priority ); 21787 } 21788 21789 //=== VK_KHR_maintenance4 === 21790 21791 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info) const21792 Device::getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT 21793 { 21794 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR && 21795 "Function <vkGetDeviceBufferMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 21796 21797 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 21798 getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR( static_cast<VkDevice>( m_device ), 21799 reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), 21800 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 21801 21802 return memoryRequirements; 21803 } 21804 21805 template <typename X, typename Y, typename... Z> 21806 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info) const21807 Device::getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT 21808 { 21809 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR && 21810 "Function <vkGetDeviceBufferMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 21811 21812 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 21813 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 21814 getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR( static_cast<VkDevice>( m_device ), 21815 reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), 21816 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 21817 21818 return structureChain; 21819 } 21820 21821 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info) const21822 Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT 21823 { 21824 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR && 21825 "Function <vkGetDeviceImageMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 21826 21827 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 21828 getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR( static_cast<VkDevice>( m_device ), 21829 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), 21830 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 21831 21832 return memoryRequirements; 21833 } 21834 21835 template <typename X, typename Y, typename... Z> 21836 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info) const21837 Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const VULKAN_HPP_NOEXCEPT 21838 { 21839 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR && 21840 "Function <vkGetDeviceImageMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 21841 21842 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 21843 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 21844 getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR( static_cast<VkDevice>( m_device ), 21845 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), 21846 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 21847 21848 return structureChain; 21849 } 21850 21851 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> getImageSparseMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info) const21852 Device::getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info ) const 21853 { 21854 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR && 21855 "Function <vkGetDeviceImageSparseMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" ); 21856 21857 std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements; 21858 uint32_t sparseMemoryRequirementCount; 21859 getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR( 21860 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), &sparseMemoryRequirementCount, nullptr ); 21861 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 21862 getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR( static_cast<VkDevice>( m_device ), 21863 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), 21864 &sparseMemoryRequirementCount, 21865 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) ); 21866 21867 VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); 21868 if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() ) 21869 { 21870 sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); 21871 } 21872 return sparseMemoryRequirements; 21873 } 21874 21875 //=== VK_VALVE_descriptor_set_host_mapping === 21876 getDescriptorSetLayoutHostMappingInfoVALVE(const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE & bindingReference) const21877 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE Device::getDescriptorSetLayoutHostMappingInfoVALVE( 21878 const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE & bindingReference ) const VULKAN_HPP_NOEXCEPT 21879 { 21880 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetLayoutHostMappingInfoVALVE && 21881 "Function <vkGetDescriptorSetLayoutHostMappingInfoVALVE> requires <VK_VALVE_descriptor_set_host_mapping>" ); 21882 21883 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE hostMapping; 21884 getDispatcher()->vkGetDescriptorSetLayoutHostMappingInfoVALVE( static_cast<VkDevice>( m_device ), 21885 reinterpret_cast<const VkDescriptorSetBindingReferenceVALVE *>( &bindingReference ), 21886 reinterpret_cast<VkDescriptorSetLayoutHostMappingInfoVALVE *>( &hostMapping ) ); 21887 21888 return hostMapping; 21889 } 21890 getHostMappingVALVE() const21891 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * DescriptorSet::getHostMappingVALVE() const VULKAN_HPP_NOEXCEPT 21892 { 21893 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDescriptorSetHostMappingVALVE && 21894 "Function <vkGetDescriptorSetHostMappingVALVE> requires <VK_VALVE_descriptor_set_host_mapping>" ); 21895 21896 void * pData; 21897 getDispatcher()->vkGetDescriptorSetHostMappingVALVE( static_cast<VkDevice>( m_device ), static_cast<VkDescriptorSet>( m_descriptorSet ), &pData ); 21898 21899 return pData; 21900 } 21901 21902 //=== VK_NV_copy_memory_indirect === 21903 copyMemoryIndirectNV(VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride) const21904 VULKAN_HPP_INLINE void CommandBuffer::copyMemoryIndirectNV( VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress, 21905 uint32_t copyCount, 21906 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 21907 { 21908 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryIndirectNV && "Function <vkCmdCopyMemoryIndirectNV> requires <VK_NV_copy_memory_indirect>" ); 21909 21910 getDispatcher()->vkCmdCopyMemoryIndirectNV( 21911 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( copyBufferAddress ), copyCount, stride ); 21912 } 21913 copyMemoryToImageIndirectNV(VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress,uint32_t stride,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceLayers> const & imageSubresources) const21914 VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToImageIndirectNV( 21915 VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress, 21916 uint32_t stride, 21917 VULKAN_HPP_NAMESPACE::Image dstImage, 21918 VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, 21919 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceLayers> const & imageSubresources ) const VULKAN_HPP_NOEXCEPT 21920 { 21921 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdCopyMemoryToImageIndirectNV && 21922 "Function <vkCmdCopyMemoryToImageIndirectNV> requires <VK_NV_copy_memory_indirect>" ); 21923 21924 getDispatcher()->vkCmdCopyMemoryToImageIndirectNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 21925 static_cast<VkDeviceAddress>( copyBufferAddress ), 21926 imageSubresources.size(), 21927 stride, 21928 static_cast<VkImage>( dstImage ), 21929 static_cast<VkImageLayout>( dstImageLayout ), 21930 reinterpret_cast<const VkImageSubresourceLayers *>( imageSubresources.data() ) ); 21931 } 21932 21933 //=== VK_NV_memory_decompression === 21934 decompressMemoryNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV> const & decompressMemoryRegions) const21935 VULKAN_HPP_INLINE void CommandBuffer::decompressMemoryNV( 21936 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV> const & decompressMemoryRegions ) const VULKAN_HPP_NOEXCEPT 21937 { 21938 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecompressMemoryNV && "Function <vkCmdDecompressMemoryNV> requires <VK_NV_memory_decompression>" ); 21939 21940 getDispatcher()->vkCmdDecompressMemoryNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 21941 decompressMemoryRegions.size(), 21942 reinterpret_cast<const VkDecompressMemoryRegionNV *>( decompressMemoryRegions.data() ) ); 21943 } 21944 decompressMemoryIndirectCountNV(VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsAddress,VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsCountAddress,uint32_t stride) const21945 VULKAN_HPP_INLINE void CommandBuffer::decompressMemoryIndirectCountNV( VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsAddress, 21946 VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsCountAddress, 21947 uint32_t stride ) const VULKAN_HPP_NOEXCEPT 21948 { 21949 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdDecompressMemoryIndirectCountNV && 21950 "Function <vkCmdDecompressMemoryIndirectCountNV> requires <VK_NV_memory_decompression>" ); 21951 21952 getDispatcher()->vkCmdDecompressMemoryIndirectCountNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 21953 static_cast<VkDeviceAddress>( indirectCommandsAddress ), 21954 static_cast<VkDeviceAddress>( indirectCommandsCountAddress ), 21955 stride ); 21956 } 21957 21958 //=== VK_NV_device_generated_commands_compute === 21959 21960 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 getPipelineIndirectMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo) const21961 Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 21962 { 21963 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineIndirectMemoryRequirementsNV && 21964 "Function <vkGetPipelineIndirectMemoryRequirementsNV> requires <VK_NV_device_generated_commands_compute>" ); 21965 21966 VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; 21967 getDispatcher()->vkGetPipelineIndirectMemoryRequirementsNV( static_cast<VkDevice>( m_device ), 21968 reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), 21969 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 21970 21971 return memoryRequirements; 21972 } 21973 21974 template <typename X, typename Y, typename... Z> 21975 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getPipelineIndirectMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo) const21976 Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 21977 { 21978 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineIndirectMemoryRequirementsNV && 21979 "Function <vkGetPipelineIndirectMemoryRequirementsNV> requires <VK_NV_device_generated_commands_compute>" ); 21980 21981 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 21982 VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>(); 21983 getDispatcher()->vkGetPipelineIndirectMemoryRequirementsNV( static_cast<VkDevice>( m_device ), 21984 reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), 21985 reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) ); 21986 21987 return structureChain; 21988 } 21989 updatePipelineIndirectBufferNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline) const21990 VULKAN_HPP_INLINE void CommandBuffer::updatePipelineIndirectBufferNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, 21991 VULKAN_HPP_NAMESPACE::Pipeline pipeline ) const VULKAN_HPP_NOEXCEPT 21992 { 21993 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdUpdatePipelineIndirectBufferNV && 21994 "Function <vkCmdUpdatePipelineIndirectBufferNV> requires <VK_NV_device_generated_commands_compute>" ); 21995 21996 getDispatcher()->vkCmdUpdatePipelineIndirectBufferNV( 21997 static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) ); 21998 } 21999 22000 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress getPipelineIndirectAddressNV(const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info) const22001 Device::getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info ) const VULKAN_HPP_NOEXCEPT 22002 { 22003 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPipelineIndirectDeviceAddressNV && 22004 "Function <vkGetPipelineIndirectDeviceAddressNV> requires <VK_NV_device_generated_commands_compute>" ); 22005 22006 VkDeviceAddress result = getDispatcher()->vkGetPipelineIndirectDeviceAddressNV( 22007 static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV *>( &info ) ); 22008 22009 return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result ); 22010 } 22011 22012 //=== VK_EXT_extended_dynamic_state3 === 22013 setDepthClampEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable) const22014 VULKAN_HPP_INLINE void CommandBuffer::setDepthClampEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable ) const VULKAN_HPP_NOEXCEPT 22015 { 22016 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthClampEnableEXT && 22017 "Function <vkCmdSetDepthClampEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22018 22019 getDispatcher()->vkCmdSetDepthClampEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthClampEnable ) ); 22020 } 22021 setPolygonModeEXT(VULKAN_HPP_NAMESPACE::PolygonMode polygonMode) const22022 VULKAN_HPP_INLINE void CommandBuffer::setPolygonModeEXT( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode ) const VULKAN_HPP_NOEXCEPT 22023 { 22024 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetPolygonModeEXT && 22025 "Function <vkCmdSetPolygonModeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22026 22027 getDispatcher()->vkCmdSetPolygonModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPolygonMode>( polygonMode ) ); 22028 } 22029 setRasterizationSamplesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples) const22030 VULKAN_HPP_INLINE void CommandBuffer::setRasterizationSamplesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples ) const VULKAN_HPP_NOEXCEPT 22031 { 22032 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRasterizationSamplesEXT && 22033 "Function <vkCmdSetRasterizationSamplesEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22034 22035 getDispatcher()->vkCmdSetRasterizationSamplesEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22036 static_cast<VkSampleCountFlagBits>( rasterizationSamples ) ); 22037 } 22038 setSampleMaskEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask) const22039 VULKAN_HPP_INLINE void CommandBuffer::setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, 22040 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask ) const 22041 { 22042 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleMaskEXT && 22043 "Function <vkCmdSetSampleMaskEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22044 # ifdef VULKAN_HPP_NO_EXCEPTIONS 22045 VULKAN_HPP_ASSERT( sampleMask.size() == ( static_cast<uint32_t>( samples ) + 31 ) / 32 ); 22046 # else 22047 if ( sampleMask.size() != ( static_cast<uint32_t>( samples ) + 31 ) / 32 ) 22048 { 22049 throw LogicError( VULKAN_HPP_NAMESPACE_STRING 22050 "::CommandBuffer::setSampleMaskEXT: sampleMask.size() != ( static_cast<uint32_t>( samples ) + 31 ) / 32" ); 22051 } 22052 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 22053 22054 getDispatcher()->vkCmdSetSampleMaskEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22055 static_cast<VkSampleCountFlagBits>( samples ), 22056 reinterpret_cast<const VkSampleMask *>( sampleMask.data() ) ); 22057 } 22058 setAlphaToCoverageEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable) const22059 VULKAN_HPP_INLINE void CommandBuffer::setAlphaToCoverageEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable ) const VULKAN_HPP_NOEXCEPT 22060 { 22061 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetAlphaToCoverageEnableEXT && 22062 "Function <vkCmdSetAlphaToCoverageEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22063 22064 getDispatcher()->vkCmdSetAlphaToCoverageEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( alphaToCoverageEnable ) ); 22065 } 22066 setAlphaToOneEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable) const22067 VULKAN_HPP_INLINE void CommandBuffer::setAlphaToOneEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable ) const VULKAN_HPP_NOEXCEPT 22068 { 22069 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetAlphaToOneEnableEXT && 22070 "Function <vkCmdSetAlphaToOneEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22071 22072 getDispatcher()->vkCmdSetAlphaToOneEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( alphaToOneEnable ) ); 22073 } 22074 setLogicOpEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable) const22075 VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable ) const VULKAN_HPP_NOEXCEPT 22076 { 22077 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLogicOpEnableEXT && 22078 "Function <vkCmdSetLogicOpEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22079 22080 getDispatcher()->vkCmdSetLogicOpEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( logicOpEnable ) ); 22081 } 22082 setColorBlendEnableEXT(uint32_t firstAttachment,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorBlendEnables) const22083 VULKAN_HPP_INLINE void CommandBuffer::setColorBlendEnableEXT( 22084 uint32_t firstAttachment, VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorBlendEnables ) const VULKAN_HPP_NOEXCEPT 22085 { 22086 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorBlendEnableEXT && 22087 "Function <vkCmdSetColorBlendEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22088 22089 getDispatcher()->vkCmdSetColorBlendEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22090 firstAttachment, 22091 colorBlendEnables.size(), 22092 reinterpret_cast<const VkBool32 *>( colorBlendEnables.data() ) ); 22093 } 22094 setColorBlendEquationEXT(uint32_t firstAttachment,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT> const & colorBlendEquations) const22095 VULKAN_HPP_INLINE void CommandBuffer::setColorBlendEquationEXT( 22096 uint32_t firstAttachment, 22097 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT> const & colorBlendEquations ) const VULKAN_HPP_NOEXCEPT 22098 { 22099 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorBlendEquationEXT && 22100 "Function <vkCmdSetColorBlendEquationEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22101 22102 getDispatcher()->vkCmdSetColorBlendEquationEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22103 firstAttachment, 22104 colorBlendEquations.size(), 22105 reinterpret_cast<const VkColorBlendEquationEXT *>( colorBlendEquations.data() ) ); 22106 } 22107 setColorWriteMaskEXT(uint32_t firstAttachment,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorComponentFlags> const & colorWriteMasks) const22108 VULKAN_HPP_INLINE void CommandBuffer::setColorWriteMaskEXT( 22109 uint32_t firstAttachment, 22110 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorComponentFlags> const & colorWriteMasks ) const VULKAN_HPP_NOEXCEPT 22111 { 22112 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorWriteMaskEXT && 22113 "Function <vkCmdSetColorWriteMaskEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22114 22115 getDispatcher()->vkCmdSetColorWriteMaskEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22116 firstAttachment, 22117 colorWriteMasks.size(), 22118 reinterpret_cast<const VkColorComponentFlags *>( colorWriteMasks.data() ) ); 22119 } 22120 22121 VULKAN_HPP_INLINE void setTessellationDomainOriginEXT(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin) const22122 CommandBuffer::setTessellationDomainOriginEXT( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin ) const VULKAN_HPP_NOEXCEPT 22123 { 22124 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetTessellationDomainOriginEXT && 22125 "Function <vkCmdSetTessellationDomainOriginEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22126 22127 getDispatcher()->vkCmdSetTessellationDomainOriginEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22128 static_cast<VkTessellationDomainOrigin>( domainOrigin ) ); 22129 } 22130 setRasterizationStreamEXT(uint32_t rasterizationStream) const22131 VULKAN_HPP_INLINE void CommandBuffer::setRasterizationStreamEXT( uint32_t rasterizationStream ) const VULKAN_HPP_NOEXCEPT 22132 { 22133 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRasterizationStreamEXT && 22134 "Function <vkCmdSetRasterizationStreamEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22135 22136 getDispatcher()->vkCmdSetRasterizationStreamEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), rasterizationStream ); 22137 } 22138 setConservativeRasterizationModeEXT(VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode) const22139 VULKAN_HPP_INLINE void CommandBuffer::setConservativeRasterizationModeEXT( 22140 VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode ) const VULKAN_HPP_NOEXCEPT 22141 { 22142 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetConservativeRasterizationModeEXT && 22143 "Function <vkCmdSetConservativeRasterizationModeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22144 22145 getDispatcher()->vkCmdSetConservativeRasterizationModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22146 static_cast<VkConservativeRasterizationModeEXT>( conservativeRasterizationMode ) ); 22147 } 22148 setExtraPrimitiveOverestimationSizeEXT(float extraPrimitiveOverestimationSize) const22149 VULKAN_HPP_INLINE void CommandBuffer::setExtraPrimitiveOverestimationSizeEXT( float extraPrimitiveOverestimationSize ) const VULKAN_HPP_NOEXCEPT 22150 { 22151 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetExtraPrimitiveOverestimationSizeEXT && 22152 "Function <vkCmdSetExtraPrimitiveOverestimationSizeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22153 22154 getDispatcher()->vkCmdSetExtraPrimitiveOverestimationSizeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), extraPrimitiveOverestimationSize ); 22155 } 22156 setDepthClipEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable) const22157 VULKAN_HPP_INLINE void CommandBuffer::setDepthClipEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable ) const VULKAN_HPP_NOEXCEPT 22158 { 22159 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthClipEnableEXT && 22160 "Function <vkCmdSetDepthClipEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22161 22162 getDispatcher()->vkCmdSetDepthClipEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthClipEnable ) ); 22163 } 22164 setSampleLocationsEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable) const22165 VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable ) const VULKAN_HPP_NOEXCEPT 22166 { 22167 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetSampleLocationsEnableEXT && 22168 "Function <vkCmdSetSampleLocationsEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22169 22170 getDispatcher()->vkCmdSetSampleLocationsEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( sampleLocationsEnable ) ); 22171 } 22172 setColorBlendAdvancedEXT(uint32_t firstAttachment,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT> const & colorBlendAdvanced) const22173 VULKAN_HPP_INLINE void CommandBuffer::setColorBlendAdvancedEXT( 22174 uint32_t firstAttachment, 22175 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT> const & colorBlendAdvanced ) const VULKAN_HPP_NOEXCEPT 22176 { 22177 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetColorBlendAdvancedEXT && 22178 "Function <vkCmdSetColorBlendAdvancedEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22179 22180 getDispatcher()->vkCmdSetColorBlendAdvancedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22181 firstAttachment, 22182 colorBlendAdvanced.size(), 22183 reinterpret_cast<const VkColorBlendAdvancedEXT *>( colorBlendAdvanced.data() ) ); 22184 } 22185 22186 VULKAN_HPP_INLINE void setProvokingVertexModeEXT(VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode) const22187 CommandBuffer::setProvokingVertexModeEXT( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode ) const VULKAN_HPP_NOEXCEPT 22188 { 22189 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetProvokingVertexModeEXT && 22190 "Function <vkCmdSetProvokingVertexModeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22191 22192 getDispatcher()->vkCmdSetProvokingVertexModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22193 static_cast<VkProvokingVertexModeEXT>( provokingVertexMode ) ); 22194 } 22195 22196 VULKAN_HPP_INLINE void setLineRasterizationModeEXT(VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode) const22197 CommandBuffer::setLineRasterizationModeEXT( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode ) const VULKAN_HPP_NOEXCEPT 22198 { 22199 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineRasterizationModeEXT && 22200 "Function <vkCmdSetLineRasterizationModeEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22201 22202 getDispatcher()->vkCmdSetLineRasterizationModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22203 static_cast<VkLineRasterizationModeEXT>( lineRasterizationMode ) ); 22204 } 22205 setLineStippleEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable) const22206 VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable ) const VULKAN_HPP_NOEXCEPT 22207 { 22208 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleEnableEXT && 22209 "Function <vkCmdSetLineStippleEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22210 22211 getDispatcher()->vkCmdSetLineStippleEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stippledLineEnable ) ); 22212 } 22213 setDepthClipNegativeOneToOneEXT(VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne) const22214 VULKAN_HPP_INLINE void CommandBuffer::setDepthClipNegativeOneToOneEXT( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne ) const VULKAN_HPP_NOEXCEPT 22215 { 22216 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDepthClipNegativeOneToOneEXT && 22217 "Function <vkCmdSetDepthClipNegativeOneToOneEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22218 22219 getDispatcher()->vkCmdSetDepthClipNegativeOneToOneEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( negativeOneToOne ) ); 22220 } 22221 setViewportWScalingEnableNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable) const22222 VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingEnableNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable ) const VULKAN_HPP_NOEXCEPT 22223 { 22224 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportWScalingEnableNV && 22225 "Function <vkCmdSetViewportWScalingEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22226 22227 getDispatcher()->vkCmdSetViewportWScalingEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( viewportWScalingEnable ) ); 22228 } 22229 setViewportSwizzleNV(uint32_t firstViewport,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles) const22230 VULKAN_HPP_INLINE void CommandBuffer::setViewportSwizzleNV( 22231 uint32_t firstViewport, 22232 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles ) const VULKAN_HPP_NOEXCEPT 22233 { 22234 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetViewportSwizzleNV && 22235 "Function <vkCmdSetViewportSwizzleNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22236 22237 getDispatcher()->vkCmdSetViewportSwizzleNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 22238 firstViewport, 22239 viewportSwizzles.size(), 22240 reinterpret_cast<const VkViewportSwizzleNV *>( viewportSwizzles.data() ) ); 22241 } 22242 setCoverageToColorEnableNV(VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable) const22243 VULKAN_HPP_INLINE void CommandBuffer::setCoverageToColorEnableNV( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable ) const VULKAN_HPP_NOEXCEPT 22244 { 22245 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageToColorEnableNV && 22246 "Function <vkCmdSetCoverageToColorEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22247 22248 getDispatcher()->vkCmdSetCoverageToColorEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( coverageToColorEnable ) ); 22249 } 22250 setCoverageToColorLocationNV(uint32_t coverageToColorLocation) const22251 VULKAN_HPP_INLINE void CommandBuffer::setCoverageToColorLocationNV( uint32_t coverageToColorLocation ) const VULKAN_HPP_NOEXCEPT 22252 { 22253 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageToColorLocationNV && 22254 "Function <vkCmdSetCoverageToColorLocationNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22255 22256 getDispatcher()->vkCmdSetCoverageToColorLocationNV( static_cast<VkCommandBuffer>( m_commandBuffer ), coverageToColorLocation ); 22257 } 22258 22259 VULKAN_HPP_INLINE void setCoverageModulationModeNV(VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode) const22260 CommandBuffer::setCoverageModulationModeNV( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode ) const VULKAN_HPP_NOEXCEPT 22261 { 22262 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageModulationModeNV && 22263 "Function <vkCmdSetCoverageModulationModeNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22264 22265 getDispatcher()->vkCmdSetCoverageModulationModeNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 22266 static_cast<VkCoverageModulationModeNV>( coverageModulationMode ) ); 22267 } 22268 22269 VULKAN_HPP_INLINE void setCoverageModulationTableEnableNV(VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable) const22270 CommandBuffer::setCoverageModulationTableEnableNV( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable ) const VULKAN_HPP_NOEXCEPT 22271 { 22272 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageModulationTableEnableNV && 22273 "Function <vkCmdSetCoverageModulationTableEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22274 22275 getDispatcher()->vkCmdSetCoverageModulationTableEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 22276 static_cast<VkBool32>( coverageModulationTableEnable ) ); 22277 } 22278 22279 VULKAN_HPP_INLINE void setCoverageModulationTableNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const float> const & coverageModulationTable) const22280 CommandBuffer::setCoverageModulationTableNV( VULKAN_HPP_NAMESPACE::ArrayProxy<const float> const & coverageModulationTable ) const VULKAN_HPP_NOEXCEPT 22281 { 22282 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageModulationTableNV && 22283 "Function <vkCmdSetCoverageModulationTableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22284 22285 getDispatcher()->vkCmdSetCoverageModulationTableNV( 22286 static_cast<VkCommandBuffer>( m_commandBuffer ), coverageModulationTable.size(), coverageModulationTable.data() ); 22287 } 22288 setShadingRateImageEnableNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable) const22289 VULKAN_HPP_INLINE void CommandBuffer::setShadingRateImageEnableNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable ) const VULKAN_HPP_NOEXCEPT 22290 { 22291 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetShadingRateImageEnableNV && 22292 "Function <vkCmdSetShadingRateImageEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22293 22294 getDispatcher()->vkCmdSetShadingRateImageEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( shadingRateImageEnable ) ); 22295 } 22296 22297 VULKAN_HPP_INLINE void setRepresentativeFragmentTestEnableNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable) const22298 CommandBuffer::setRepresentativeFragmentTestEnableNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable ) const VULKAN_HPP_NOEXCEPT 22299 { 22300 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetRepresentativeFragmentTestEnableNV && 22301 "Function <vkCmdSetRepresentativeFragmentTestEnableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22302 22303 getDispatcher()->vkCmdSetRepresentativeFragmentTestEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 22304 static_cast<VkBool32>( representativeFragmentTestEnable ) ); 22305 } 22306 22307 VULKAN_HPP_INLINE void setCoverageReductionModeNV(VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode) const22308 CommandBuffer::setCoverageReductionModeNV( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode ) const VULKAN_HPP_NOEXCEPT 22309 { 22310 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetCoverageReductionModeNV && 22311 "Function <vkCmdSetCoverageReductionModeNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" ); 22312 22313 getDispatcher()->vkCmdSetCoverageReductionModeNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 22314 static_cast<VkCoverageReductionModeNV>( coverageReductionMode ) ); 22315 } 22316 22317 //=== VK_EXT_shader_module_identifier === 22318 getIdentifierEXT() const22319 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT ShaderModule::getIdentifierEXT() const VULKAN_HPP_NOEXCEPT 22320 { 22321 VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderModuleIdentifierEXT && 22322 "Function <vkGetShaderModuleIdentifierEXT> requires <VK_EXT_shader_module_identifier>" ); 22323 22324 VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT identifier; 22325 getDispatcher()->vkGetShaderModuleIdentifierEXT( 22326 static_cast<VkDevice>( m_device ), static_cast<VkShaderModule>( m_shaderModule ), reinterpret_cast<VkShaderModuleIdentifierEXT *>( &identifier ) ); 22327 22328 return identifier; 22329 } 22330 22331 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT getShaderModuleCreateInfoIdentifierEXT(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & createInfo) const22332 Device::getShaderModuleCreateInfoIdentifierEXT( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & createInfo ) const VULKAN_HPP_NOEXCEPT 22333 { 22334 VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderModuleCreateInfoIdentifierEXT && 22335 "Function <vkGetShaderModuleCreateInfoIdentifierEXT> requires <VK_EXT_shader_module_identifier>" ); 22336 22337 VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT identifier; 22338 getDispatcher()->vkGetShaderModuleCreateInfoIdentifierEXT( static_cast<VkDevice>( m_device ), 22339 reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ), 22340 reinterpret_cast<VkShaderModuleIdentifierEXT *>( &identifier ) ); 22341 22342 return identifier; 22343 } 22344 22345 //=== VK_NV_optical_flow === 22346 22347 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV> getOpticalFlowImageFormatsNV(const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo) const22348 PhysicalDevice::getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo ) const 22349 { 22350 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV && 22351 "Function <vkGetPhysicalDeviceOpticalFlowImageFormatsNV> requires <VK_NV_optical_flow>" ); 22352 22353 std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV> imageFormatProperties; 22354 uint32_t formatCount; 22355 VULKAN_HPP_NAMESPACE::Result result; 22356 do 22357 { 22358 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV( 22359 static_cast<VkPhysicalDevice>( m_physicalDevice ), 22360 reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ), 22361 &formatCount, 22362 nullptr ) ); 22363 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && formatCount ) 22364 { 22365 imageFormatProperties.resize( formatCount ); 22366 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceOpticalFlowImageFormatsNV( 22367 static_cast<VkPhysicalDevice>( m_physicalDevice ), 22368 reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ), 22369 &formatCount, 22370 reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) ) ); 22371 } 22372 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 22373 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" ); 22374 VULKAN_HPP_ASSERT( formatCount <= imageFormatProperties.size() ); 22375 if ( formatCount < imageFormatProperties.size() ) 22376 { 22377 imageFormatProperties.resize( formatCount ); 22378 } 22379 return imageFormatProperties; 22380 } 22381 22382 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 22383 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV>::Type createOpticalFlowSessionNV(VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const22384 Device::createOpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const & createInfo, 22385 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 22386 VULKAN_HPP_RAII_CREATE_NOEXCEPT 22387 { 22388 VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session; 22389 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateOpticalFlowSessionNV( 22390 static_cast<VkDevice>( m_device ), 22391 reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( &createInfo ), 22392 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 22393 reinterpret_cast<VkOpticalFlowSessionNV *>( &session ) ) ); 22394 if ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) 22395 { 22396 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 22397 return VULKAN_HPP_UNEXPECTED( result ); 22398 # else 22399 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createOpticalFlowSessionNV" ); 22400 # endif 22401 } 22402 22403 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::OpticalFlowSessionNV( *this, *reinterpret_cast<VkOpticalFlowSessionNV *>( &session ), allocator ); 22404 } 22405 bindImage(VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV bindingPoint,VULKAN_HPP_NAMESPACE::ImageView view,VULKAN_HPP_NAMESPACE::ImageLayout layout) const22406 VULKAN_HPP_INLINE void OpticalFlowSessionNV::bindImage( VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV bindingPoint, 22407 VULKAN_HPP_NAMESPACE::ImageView view, 22408 VULKAN_HPP_NAMESPACE::ImageLayout layout ) const 22409 { 22410 VULKAN_HPP_ASSERT( getDispatcher()->vkBindOpticalFlowSessionImageNV && "Function <vkBindOpticalFlowSessionImageNV> requires <VK_NV_optical_flow>" ); 22411 22412 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 22413 getDispatcher()->vkBindOpticalFlowSessionImageNV( static_cast<VkDevice>( m_device ), 22414 static_cast<VkOpticalFlowSessionNV>( m_session ), 22415 static_cast<VkOpticalFlowSessionBindingPointNV>( bindingPoint ), 22416 static_cast<VkImageView>( view ), 22417 static_cast<VkImageLayout>( layout ) ) ); 22418 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::OpticalFlowSessionNV::bindImage" ); 22419 } 22420 opticalFlowExecuteNV(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV & executeInfo) const22421 VULKAN_HPP_INLINE void CommandBuffer::opticalFlowExecuteNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session, 22422 const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV & executeInfo ) const VULKAN_HPP_NOEXCEPT 22423 { 22424 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdOpticalFlowExecuteNV && "Function <vkCmdOpticalFlowExecuteNV> requires <VK_NV_optical_flow>" ); 22425 22426 getDispatcher()->vkCmdOpticalFlowExecuteNV( static_cast<VkCommandBuffer>( m_commandBuffer ), 22427 static_cast<VkOpticalFlowSessionNV>( session ), 22428 reinterpret_cast<const VkOpticalFlowExecuteInfoNV *>( &executeInfo ) ); 22429 } 22430 22431 //=== VK_KHR_maintenance5 === 22432 bindIndexBuffer2KHR(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::IndexType indexType) const22433 VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer2KHR( VULKAN_HPP_NAMESPACE::Buffer buffer, 22434 VULKAN_HPP_NAMESPACE::DeviceSize offset, 22435 VULKAN_HPP_NAMESPACE::DeviceSize size, 22436 VULKAN_HPP_NAMESPACE::IndexType indexType ) const VULKAN_HPP_NOEXCEPT 22437 { 22438 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindIndexBuffer2KHR && "Function <vkCmdBindIndexBuffer2KHR> requires <VK_KHR_maintenance5>" ); 22439 22440 getDispatcher()->vkCmdBindIndexBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 22441 static_cast<VkBuffer>( buffer ), 22442 static_cast<VkDeviceSize>( offset ), 22443 static_cast<VkDeviceSize>( size ), 22444 static_cast<VkIndexType>( indexType ) ); 22445 } 22446 22447 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D getRenderingAreaGranularityKHR(const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR & renderingAreaInfo) const22448 Device::getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR & renderingAreaInfo ) const VULKAN_HPP_NOEXCEPT 22449 { 22450 VULKAN_HPP_ASSERT( getDispatcher()->vkGetRenderingAreaGranularityKHR && "Function <vkGetRenderingAreaGranularityKHR> requires <VK_KHR_maintenance5>" ); 22451 22452 VULKAN_HPP_NAMESPACE::Extent2D granularity; 22453 getDispatcher()->vkGetRenderingAreaGranularityKHR( static_cast<VkDevice>( m_device ), 22454 reinterpret_cast<const VkRenderingAreaInfoKHR *>( &renderingAreaInfo ), 22455 reinterpret_cast<VkExtent2D *>( &granularity ) ); 22456 22457 return granularity; 22458 } 22459 22460 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR getImageSubresourceLayoutKHR(const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info) const22461 Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 22462 { 22463 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageSubresourceLayoutKHR && 22464 "Function <vkGetDeviceImageSubresourceLayoutKHR> requires <VK_KHR_maintenance5>" ); 22465 22466 VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout; 22467 getDispatcher()->vkGetDeviceImageSubresourceLayoutKHR( static_cast<VkDevice>( m_device ), 22468 reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( &info ), 22469 reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) ); 22470 22471 return layout; 22472 } 22473 22474 template <typename X, typename Y, typename... Z> 22475 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getImageSubresourceLayoutKHR(const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info) const22476 Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR & info ) const VULKAN_HPP_NOEXCEPT 22477 { 22478 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDeviceImageSubresourceLayoutKHR && 22479 "Function <vkGetDeviceImageSubresourceLayoutKHR> requires <VK_KHR_maintenance5>" ); 22480 22481 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 22482 VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR & layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>(); 22483 getDispatcher()->vkGetDeviceImageSubresourceLayoutKHR( static_cast<VkDevice>( m_device ), 22484 reinterpret_cast<const VkDeviceImageSubresourceInfoKHR *>( &info ), 22485 reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) ); 22486 22487 return structureChain; 22488 } 22489 22490 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR getSubresourceLayout2KHR(const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource) const22491 Image::getSubresourceLayout2KHR( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT 22492 { 22493 VULKAN_HPP_ASSERT( 22494 getDispatcher()->vkGetImageSubresourceLayout2KHR && 22495 "Function <vkGetImageSubresourceLayout2KHR> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5>" ); 22496 22497 VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR layout; 22498 getDispatcher()->vkGetImageSubresourceLayout2KHR( static_cast<VkDevice>( m_device ), 22499 static_cast<VkImage>( m_image ), 22500 reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ), 22501 reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) ); 22502 22503 return layout; 22504 } 22505 22506 template <typename X, typename Y, typename... Z> 22507 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getSubresourceLayout2KHR(const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource) const22508 Image::getSubresourceLayout2KHR( const VULKAN_HPP_NAMESPACE::ImageSubresource2KHR & subresource ) const VULKAN_HPP_NOEXCEPT 22509 { 22510 VULKAN_HPP_ASSERT( 22511 getDispatcher()->vkGetImageSubresourceLayout2KHR && 22512 "Function <vkGetImageSubresourceLayout2KHR> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5>" ); 22513 22514 VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain; 22515 VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR & layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>(); 22516 getDispatcher()->vkGetImageSubresourceLayout2KHR( static_cast<VkDevice>( m_device ), 22517 static_cast<VkImage>( m_image ), 22518 reinterpret_cast<const VkImageSubresource2KHR *>( &subresource ), 22519 reinterpret_cast<VkSubresourceLayout2KHR *>( &layout ) ); 22520 22521 return structureChain; 22522 } 22523 22524 //=== VK_EXT_shader_object === 22525 22526 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE 22527 VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>>::Type createShadersEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const22528 Device::createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos, 22529 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const 22530 { 22531 std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT> shaders( createInfos.size() ); 22532 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateShadersEXT( 22533 static_cast<VkDevice>( m_device ), 22534 createInfos.size(), 22535 reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ), 22536 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 22537 reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) ); 22538 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eIncompatibleShaderBinaryEXT ) ) 22539 { 22540 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 22541 return VULKAN_HPP_UNEXPECTED( result ); 22542 # else 22543 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShadersEXT" ); 22544 # endif 22545 } 22546 22547 std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT> shadersRAII; 22548 shadersRAII.reserve( shaders.size() ); 22549 for ( auto & shader : shaders ) 22550 { 22551 shadersRAII.emplace_back( *this, *reinterpret_cast<VkShaderEXT *>( &shader ), allocator, result ); 22552 } 22553 return shadersRAII; 22554 } 22555 22556 VULKAN_HPP_NODISCARD 22557 VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CreateReturnType<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT>::Type createShaderEXT(VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const & createInfo,VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const22558 Device::createShaderEXT( VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const & createInfo, 22559 VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const VULKAN_HPP_RAII_CREATE_NOEXCEPT 22560 { 22561 VULKAN_HPP_NAMESPACE::ShaderEXT shader; 22562 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkCreateShadersEXT( 22563 static_cast<VkDevice>( m_device ), 22564 1, 22565 reinterpret_cast<const VkShaderCreateInfoEXT *>( &createInfo ), 22566 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ), 22567 reinterpret_cast<VkShaderEXT *>( &shader ) ) ); 22568 if ( ( result != VULKAN_HPP_NAMESPACE::Result::eSuccess ) && ( result != VULKAN_HPP_NAMESPACE::Result::eIncompatibleShaderBinaryEXT ) ) 22569 { 22570 # if defined( VULKAN_HPP_RAII_NO_EXCEPTIONS ) 22571 return VULKAN_HPP_UNEXPECTED( result ); 22572 # else 22573 VULKAN_HPP_NAMESPACE::detail::throwResultException( result, "Device::createShaderEXT" ); 22574 # endif 22575 } 22576 22577 return VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderEXT( *this, *reinterpret_cast<VkShaderEXT *>( &shader ), allocator, result ); 22578 } 22579 getBinaryData() const22580 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> ShaderEXT::getBinaryData() const 22581 { 22582 VULKAN_HPP_ASSERT( getDispatcher()->vkGetShaderBinaryDataEXT && "Function <vkGetShaderBinaryDataEXT> requires <VK_EXT_shader_object>" ); 22583 22584 std::vector<uint8_t> data; 22585 size_t dataSize; 22586 VULKAN_HPP_NAMESPACE::Result result; 22587 do 22588 { 22589 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 22590 getDispatcher()->vkGetShaderBinaryDataEXT( static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( m_shader ), &dataSize, nullptr ) ); 22591 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize ) 22592 { 22593 data.resize( dataSize ); 22594 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetShaderBinaryDataEXT( 22595 static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( m_shader ), &dataSize, reinterpret_cast<void *>( data.data() ) ) ); 22596 } 22597 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 22598 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::ShaderEXT::getBinaryData" ); 22599 VULKAN_HPP_ASSERT( dataSize <= data.size() ); 22600 if ( dataSize < data.size() ) 22601 { 22602 data.resize( dataSize ); 22603 } 22604 return data; 22605 } 22606 bindShadersEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & shaders) const22607 VULKAN_HPP_INLINE void CommandBuffer::bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages, 22608 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & shaders ) const 22609 { 22610 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindShadersEXT && "Function <vkCmdBindShadersEXT> requires <VK_EXT_shader_object>" ); 22611 # ifdef VULKAN_HPP_NO_EXCEPTIONS 22612 VULKAN_HPP_ASSERT( stages.size() == shaders.size() ); 22613 # else 22614 if ( stages.size() != shaders.size() ) 22615 { 22616 throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindShadersEXT: stages.size() != shaders.size()" ); 22617 } 22618 # endif /*VULKAN_HPP_NO_EXCEPTIONS*/ 22619 22620 getDispatcher()->vkCmdBindShadersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22621 stages.size(), 22622 reinterpret_cast<const VkShaderStageFlagBits *>( stages.data() ), 22623 reinterpret_cast<const VkShaderEXT *>( shaders.data() ) ); 22624 } 22625 22626 //=== VK_QCOM_tile_properties === 22627 getTilePropertiesQCOM() const22628 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM> Framebuffer::getTilePropertiesQCOM() const 22629 { 22630 VULKAN_HPP_ASSERT( getDispatcher()->vkGetFramebufferTilePropertiesQCOM && 22631 "Function <vkGetFramebufferTilePropertiesQCOM> requires <VK_QCOM_tile_properties>" ); 22632 22633 std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM> properties; 22634 uint32_t propertiesCount; 22635 VULKAN_HPP_NAMESPACE::Result result; 22636 do 22637 { 22638 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetFramebufferTilePropertiesQCOM( 22639 static_cast<VkDevice>( m_device ), static_cast<VkFramebuffer>( m_framebuffer ), &propertiesCount, nullptr ) ); 22640 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertiesCount ) 22641 { 22642 properties.resize( propertiesCount ); 22643 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 22644 getDispatcher()->vkGetFramebufferTilePropertiesQCOM( static_cast<VkDevice>( m_device ), 22645 static_cast<VkFramebuffer>( m_framebuffer ), 22646 &propertiesCount, 22647 reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) ) ); 22648 } 22649 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 22650 22651 VULKAN_HPP_ASSERT( propertiesCount <= properties.size() ); 22652 if ( propertiesCount < properties.size() ) 22653 { 22654 properties.resize( propertiesCount ); 22655 } 22656 return properties; 22657 } 22658 22659 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::TilePropertiesQCOM getDynamicRenderingTilePropertiesQCOM(const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo) const22660 Device::getDynamicRenderingTilePropertiesQCOM( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo ) const VULKAN_HPP_NOEXCEPT 22661 { 22662 VULKAN_HPP_ASSERT( getDispatcher()->vkGetDynamicRenderingTilePropertiesQCOM && 22663 "Function <vkGetDynamicRenderingTilePropertiesQCOM> requires <VK_QCOM_tile_properties>" ); 22664 22665 VULKAN_HPP_NAMESPACE::TilePropertiesQCOM properties; 22666 getDispatcher()->vkGetDynamicRenderingTilePropertiesQCOM( static_cast<VkDevice>( m_device ), 22667 reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ), 22668 reinterpret_cast<VkTilePropertiesQCOM *>( &properties ) ); 22669 22670 return properties; 22671 } 22672 22673 //=== VK_NV_low_latency2 === 22674 setLatencySleepModeNV(const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo) const22675 VULKAN_HPP_INLINE void SwapchainKHR::setLatencySleepModeNV( const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo ) const 22676 { 22677 VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencySleepModeNV && "Function <vkSetLatencySleepModeNV> requires <VK_NV_low_latency2>" ); 22678 22679 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkSetLatencySleepModeNV( 22680 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<const VkLatencySleepModeInfoNV *>( &sleepModeInfo ) ) ); 22681 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::setLatencySleepModeNV" ); 22682 } 22683 latencySleepNV(const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo) const22684 VULKAN_HPP_INLINE void SwapchainKHR::latencySleepNV( const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo ) const VULKAN_HPP_NOEXCEPT 22685 { 22686 VULKAN_HPP_ASSERT( getDispatcher()->vkLatencySleepNV && "Function <vkLatencySleepNV> requires <VK_NV_low_latency2>" ); 22687 22688 getDispatcher()->vkLatencySleepNV( 22689 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<const VkLatencySleepInfoNV *>( &sleepInfo ) ); 22690 } 22691 setLatencyMarkerNV(const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo) const22692 VULKAN_HPP_INLINE void SwapchainKHR::setLatencyMarkerNV( const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo ) const VULKAN_HPP_NOEXCEPT 22693 { 22694 VULKAN_HPP_ASSERT( getDispatcher()->vkSetLatencyMarkerNV && "Function <vkSetLatencyMarkerNV> requires <VK_NV_low_latency2>" ); 22695 22696 getDispatcher()->vkSetLatencyMarkerNV( static_cast<VkDevice>( m_device ), 22697 static_cast<VkSwapchainKHR>( m_swapchain ), 22698 reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); 22699 } 22700 getLatencyTimingsNV() const22701 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV SwapchainKHR::getLatencyTimingsNV() const VULKAN_HPP_NOEXCEPT 22702 { 22703 VULKAN_HPP_ASSERT( getDispatcher()->vkGetLatencyTimingsNV && "Function <vkGetLatencyTimingsNV> requires <VK_NV_low_latency2>" ); 22704 22705 VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV latencyMarkerInfo; 22706 getDispatcher()->vkGetLatencyTimingsNV( 22707 static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( m_swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) ); 22708 22709 return latencyMarkerInfo; 22710 } 22711 notifyOutOfBandNV(const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo) const22712 VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo ) const VULKAN_HPP_NOEXCEPT 22713 { 22714 VULKAN_HPP_ASSERT( getDispatcher()->vkQueueNotifyOutOfBandNV && "Function <vkQueueNotifyOutOfBandNV> requires <VK_NV_low_latency2>" ); 22715 22716 getDispatcher()->vkQueueNotifyOutOfBandNV( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( &queueTypeInfo ) ); 22717 } 22718 22719 //=== VK_KHR_cooperative_matrix === 22720 22721 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR> getCooperativeMatrixPropertiesKHR() const22722 PhysicalDevice::getCooperativeMatrixPropertiesKHR() const 22723 { 22724 VULKAN_HPP_ASSERT( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR && 22725 "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR> requires <VK_KHR_cooperative_matrix>" ); 22726 22727 std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR> properties; 22728 uint32_t propertyCount; 22729 VULKAN_HPP_NAMESPACE::Result result; 22730 do 22731 { 22732 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 22733 getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, nullptr ) ); 22734 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount ) 22735 { 22736 properties.resize( propertyCount ); 22737 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( 22738 static_cast<VkPhysicalDevice>( m_physicalDevice ), &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( properties.data() ) ) ); 22739 } 22740 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 22741 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesKHR" ); 22742 VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); 22743 if ( propertyCount < properties.size() ) 22744 { 22745 properties.resize( propertyCount ); 22746 } 22747 return properties; 22748 } 22749 22750 //=== VK_EXT_attachment_feedback_loop_dynamic_state === 22751 setAttachmentFeedbackLoopEnableEXT(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask) const22752 VULKAN_HPP_INLINE void CommandBuffer::setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask ) const VULKAN_HPP_NOEXCEPT 22753 { 22754 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetAttachmentFeedbackLoopEnableEXT && 22755 "Function <vkCmdSetAttachmentFeedbackLoopEnableEXT> requires <VK_EXT_attachment_feedback_loop_dynamic_state>" ); 22756 22757 getDispatcher()->vkCmdSetAttachmentFeedbackLoopEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22758 static_cast<VkImageAspectFlags>( aspectMask ) ); 22759 } 22760 22761 # if defined( VK_USE_PLATFORM_SCREEN_QNX ) 22762 //=== VK_QNX_external_memory_screen_buffer === 22763 22764 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX getScreenBufferPropertiesQNX(const struct _screen_buffer & buffer) const22765 Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const 22766 { 22767 VULKAN_HPP_ASSERT( getDispatcher()->vkGetScreenBufferPropertiesQNX && 22768 "Function <vkGetScreenBufferPropertiesQNX> requires <VK_QNX_external_memory_screen_buffer>" ); 22769 22770 VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX properties; 22771 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetScreenBufferPropertiesQNX( 22772 static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( &properties ) ) ); 22773 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" ); 22774 22775 return properties; 22776 } 22777 22778 template <typename X, typename Y, typename... Z> 22779 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> getScreenBufferPropertiesQNX(const struct _screen_buffer & buffer) const22780 Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer ) const 22781 { 22782 VULKAN_HPP_ASSERT( getDispatcher()->vkGetScreenBufferPropertiesQNX && 22783 "Function <vkGetScreenBufferPropertiesQNX> requires <VK_QNX_external_memory_screen_buffer>" ); 22784 22785 StructureChain<X, Y, Z...> structureChain; 22786 VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>(); 22787 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetScreenBufferPropertiesQNX( 22788 static_cast<VkDevice>( m_device ), &buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( &properties ) ) ); 22789 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" ); 22790 22791 return structureChain; 22792 } 22793 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/ 22794 22795 //=== VK_KHR_line_rasterization === 22796 setLineStippleKHR(uint32_t lineStippleFactor,uint16_t lineStipplePattern) const22797 VULKAN_HPP_INLINE void CommandBuffer::setLineStippleKHR( uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT 22798 { 22799 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetLineStippleKHR && 22800 "Function <vkCmdSetLineStippleKHR> requires <VK_EXT_line_rasterization> or <VK_KHR_line_rasterization>" ); 22801 22802 getDispatcher()->vkCmdSetLineStippleKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), lineStippleFactor, lineStipplePattern ); 22803 } 22804 22805 //=== VK_KHR_calibrated_timestamps === 22806 getCalibrateableTimeDomainsKHR() const22807 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> PhysicalDevice::getCalibrateableTimeDomainsKHR() const 22808 { 22809 VULKAN_HPP_ASSERT( 22810 getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsKHR && 22811 "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" ); 22812 22813 std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR> timeDomains; 22814 uint32_t timeDomainCount; 22815 VULKAN_HPP_NAMESPACE::Result result; 22816 do 22817 { 22818 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 22819 getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, nullptr ) ); 22820 if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount ) 22821 { 22822 timeDomains.resize( timeDomainCount ); 22823 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( 22824 static_cast<VkPhysicalDevice>( m_physicalDevice ), &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) ); 22825 } 22826 } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete ); 22827 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsKHR" ); 22828 VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); 22829 if ( timeDomainCount < timeDomains.size() ) 22830 { 22831 timeDomains.resize( timeDomainCount ); 22832 } 22833 return timeDomains; 22834 } 22835 getCalibratedTimestampsKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos) const22836 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<std::vector<uint64_t>, uint64_t> Device::getCalibratedTimestampsKHR( 22837 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos ) const 22838 { 22839 VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsKHR && 22840 "Function <vkGetCalibratedTimestampsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" ); 22841 22842 std::pair<std::vector<uint64_t>, uint64_t> data_( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) ); 22843 std::vector<uint64_t> & timestamps = data_.first; 22844 uint64_t & maxDeviation = data_.second; 22845 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( 22846 getDispatcher()->vkGetCalibratedTimestampsKHR( static_cast<VkDevice>( m_device ), 22847 timestampInfos.size(), 22848 reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), 22849 timestamps.data(), 22850 &maxDeviation ) ); 22851 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsKHR" ); 22852 22853 return data_; 22854 } 22855 22856 VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint64_t, uint64_t> getCalibratedTimestampKHR(const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo) const22857 Device::getCalibratedTimestampKHR( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo ) const 22858 { 22859 VULKAN_HPP_ASSERT( getDispatcher()->vkGetCalibratedTimestampsKHR && 22860 "Function <vkGetCalibratedTimestampsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" ); 22861 22862 std::pair<uint64_t, uint64_t> data_; 22863 uint64_t & timestamp = data_.first; 22864 uint64_t & maxDeviation = data_.second; 22865 VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( getDispatcher()->vkGetCalibratedTimestampsKHR( 22866 static_cast<VkDevice>( m_device ), 1, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( ×tampInfo ), ×tamp, &maxDeviation ) ); 22867 VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampKHR" ); 22868 22869 return data_; 22870 } 22871 22872 //=== VK_KHR_maintenance6 === 22873 22874 VULKAN_HPP_INLINE void bindDescriptorSets2KHR(const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR & bindDescriptorSetsInfo) const22875 CommandBuffer::bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR & bindDescriptorSetsInfo ) const VULKAN_HPP_NOEXCEPT 22876 { 22877 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorSets2KHR && "Function <vkCmdBindDescriptorSets2KHR> requires <VK_KHR_maintenance6>" ); 22878 22879 getDispatcher()->vkCmdBindDescriptorSets2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 22880 reinterpret_cast<const VkBindDescriptorSetsInfoKHR *>( &bindDescriptorSetsInfo ) ); 22881 } 22882 pushConstants2KHR(const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR & pushConstantsInfo) const22883 VULKAN_HPP_INLINE void CommandBuffer::pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR & pushConstantsInfo ) const VULKAN_HPP_NOEXCEPT 22884 { 22885 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushConstants2KHR && "Function <vkCmdPushConstants2KHR> requires <VK_KHR_maintenance6>" ); 22886 22887 getDispatcher()->vkCmdPushConstants2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 22888 reinterpret_cast<const VkPushConstantsInfoKHR *>( &pushConstantsInfo ) ); 22889 } 22890 22891 VULKAN_HPP_INLINE void pushDescriptorSet2KHR(const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR & pushDescriptorSetInfo) const22892 CommandBuffer::pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR & pushDescriptorSetInfo ) const VULKAN_HPP_NOEXCEPT 22893 { 22894 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSet2KHR && "Function <vkCmdPushDescriptorSet2KHR> requires <VK_KHR_maintenance6>" ); 22895 22896 getDispatcher()->vkCmdPushDescriptorSet2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), 22897 reinterpret_cast<const VkPushDescriptorSetInfoKHR *>( &pushDescriptorSetInfo ) ); 22898 } 22899 pushDescriptorSetWithTemplate2KHR(const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR & pushDescriptorSetWithTemplateInfo) const22900 VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplate2KHR( 22901 const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR & pushDescriptorSetWithTemplateInfo ) const VULKAN_HPP_NOEXCEPT 22902 { 22903 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdPushDescriptorSetWithTemplate2KHR && 22904 "Function <vkCmdPushDescriptorSetWithTemplate2KHR> requires <VK_KHR_maintenance6>" ); 22905 22906 getDispatcher()->vkCmdPushDescriptorSetWithTemplate2KHR( 22907 static_cast<VkCommandBuffer>( m_commandBuffer ), 22908 reinterpret_cast<const VkPushDescriptorSetWithTemplateInfoKHR *>( &pushDescriptorSetWithTemplateInfo ) ); 22909 } 22910 setDescriptorBufferOffsets2EXT(const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo) const22911 VULKAN_HPP_INLINE void CommandBuffer::setDescriptorBufferOffsets2EXT( 22912 const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo ) const VULKAN_HPP_NOEXCEPT 22913 { 22914 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdSetDescriptorBufferOffsets2EXT && 22915 "Function <vkCmdSetDescriptorBufferOffsets2EXT> requires <VK_KHR_maintenance6>" ); 22916 22917 getDispatcher()->vkCmdSetDescriptorBufferOffsets2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ), 22918 reinterpret_cast<const VkSetDescriptorBufferOffsetsInfoEXT *>( &setDescriptorBufferOffsetsInfo ) ); 22919 } 22920 bindDescriptorBufferEmbeddedSamplers2EXT(const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo) const22921 VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBufferEmbeddedSamplers2EXT( 22922 const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo ) const VULKAN_HPP_NOEXCEPT 22923 { 22924 VULKAN_HPP_ASSERT( getDispatcher()->vkCmdBindDescriptorBufferEmbeddedSamplers2EXT && 22925 "Function <vkCmdBindDescriptorBufferEmbeddedSamplers2EXT> requires <VK_KHR_maintenance6>" ); 22926 22927 getDispatcher()->vkCmdBindDescriptorBufferEmbeddedSamplers2EXT( 22928 static_cast<VkCommandBuffer>( m_commandBuffer ), 22929 reinterpret_cast<const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( &bindDescriptorBufferEmbeddedSamplersInfo ) ); 22930 } 22931 22932 //==================== 22933 //=== RAII Helpers === 22934 //==================== 22935 22936 template <typename RAIIType> filterCppTypes(std::vector<RAIIType> const & raiiTypes)22937 std::vector<typename RAIIType::CppType> filterCppTypes( std::vector<RAIIType> const & raiiTypes ) 22938 { 22939 std::vector<typename RAIIType::CppType> cppTypes( raiiTypes.size() ); 22940 std::transform( raiiTypes.begin(), raiiTypes.end(), cppTypes.begin(), []( RAIIType const & d ) { return *d; } ); 22941 return cppTypes; 22942 } 22943 22944 template <typename RAIIType, class UnaryPredicate> filterCppTypes(std::vector<RAIIType> const & raiiTypes,UnaryPredicate p)22945 std::vector<typename RAIIType::CppType> filterCppTypes( std::vector<RAIIType> const & raiiTypes, UnaryPredicate p ) 22946 { 22947 std::vector<typename RAIIType::CppType> cppTypes; 22948 for ( auto const & t : raiiTypes ) 22949 { 22950 if ( p( t ) ) 22951 { 22952 cppTypes.push_back( *t ); 22953 } 22954 } 22955 return cppTypes; 22956 } 22957 22958 } // namespace VULKAN_HPP_RAII_NAMESPACE 22959 } // namespace VULKAN_HPP_NAMESPACE 22960 #endif 22961 #endif 22962