blob: 3a96d5b6a19672990a70238b2aa81c1622ba98f3 [file] [log] [blame]
// Copyright 2015-2022 The Khronos Group Inc.
//
// SPDX-License-Identifier: Apache-2.0 OR MIT
//
// This header is generated from the Khronos Vulkan XML API Registry.
#ifndef VULKAN_RAII_HPP
#define VULKAN_RAII_HPP
#include <vulkan/vulkan.hpp>
#if !defined(VULKAN_HPP_RAII_NAMESPACE)
# define VULKAN_HPP_RAII_NAMESPACE raii
#endif
namespace VULKAN_HPP_NAMESPACE {
namespace VULKAN_HPP_RAII_NAMESPACE {
#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) && !defined(VULKAN_HPP_NO_EXCEPTIONS)
template<class T, class U = T>
VULKAN_HPP_CONSTEXPR_14 VULKAN_HPP_INLINE T exchange(T &obj, U &&newValue)
{
# if(14 <= VULKAN_HPP_CPP_VERSION)
return std::exchange<T>(obj, std::forward<U>(newValue));
# else
T oldValue = std::move(obj);
obj = std::forward<U>(newValue);
return oldValue;
# endif
}
class ContextDispatcher : public DispatchLoaderBase
{
public:
ContextDispatcher(PFN_vkGetInstanceProcAddr getProcAddr)
: vkGetInstanceProcAddr(getProcAddr)
//=== VK_VERSION_1_0 ===
, vkCreateInstance(PFN_vkCreateInstance(getProcAddr(NULL, "vkCreateInstance")))
, vkEnumerateInstanceExtensionProperties(PFN_vkEnumerateInstanceExtensionProperties(getProcAddr(NULL, "vkEnumerateInstanceExtensionProperties")))
, vkEnumerateInstanceLayerProperties(PFN_vkEnumerateInstanceLayerProperties(getProcAddr(NULL, "vkEnumerateInstanceLayerProperties")))
//=== VK_VERSION_1_1 ===
, vkEnumerateInstanceVersion(PFN_vkEnumerateInstanceVersion(getProcAddr(NULL, "vkEnumerateInstanceVersion")))
{
}
public:
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
//=== VK_VERSION_1_0 ===
PFN_vkCreateInstance vkCreateInstance = 0;
PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0;
PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0;
//=== VK_VERSION_1_1 ===
PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0;
};
class InstanceDispatcher : public DispatchLoaderBase
{
public:
InstanceDispatcher(PFN_vkGetInstanceProcAddr getProcAddr, VkInstance instance)
: vkGetInstanceProcAddr(getProcAddr)
{
//=== VK_VERSION_1_0 ===
vkDestroyInstance = PFN_vkDestroyInstance(vkGetInstanceProcAddr(instance, "vkDestroyInstance"));
vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices(vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDevices"));
vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures"));
vkGetPhysicalDeviceFormatProperties =
PFN_vkGetPhysicalDeviceFormatProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties"));
vkGetPhysicalDeviceImageFormatProperties =
PFN_vkGetPhysicalDeviceImageFormatProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties"));
vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties"));
vkGetPhysicalDeviceQueueFamilyProperties =
PFN_vkGetPhysicalDeviceQueueFamilyProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties"));
vkGetPhysicalDeviceMemoryProperties =
PFN_vkGetPhysicalDeviceMemoryProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties"));
vkCreateDevice = PFN_vkCreateDevice(vkGetInstanceProcAddr(instance, "vkCreateDevice"));
vkEnumerateDeviceExtensionProperties =
PFN_vkEnumerateDeviceExtensionProperties(vkGetInstanceProcAddr(instance, "vkEnumerateDeviceExtensionProperties"));
vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties(vkGetInstanceProcAddr(instance, "vkEnumerateDeviceLayerProperties"));
vkGetPhysicalDeviceSparseImageFormatProperties =
PFN_vkGetPhysicalDeviceSparseImageFormatProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties"));
//=== VK_VERSION_1_1 ===
vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups(vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroups"));
vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2"));
vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2"));
vkGetPhysicalDeviceFormatProperties2 =
PFN_vkGetPhysicalDeviceFormatProperties2(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2"));
vkGetPhysicalDeviceImageFormatProperties2 =
PFN_vkGetPhysicalDeviceImageFormatProperties2(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties2"));
vkGetPhysicalDeviceQueueFamilyProperties2 =
PFN_vkGetPhysicalDeviceQueueFamilyProperties2(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties2"));
vkGetPhysicalDeviceMemoryProperties2 =
PFN_vkGetPhysicalDeviceMemoryProperties2(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties2"));
vkGetPhysicalDeviceSparseImageFormatProperties2 =
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties2"));
vkGetPhysicalDeviceExternalBufferProperties =
PFN_vkGetPhysicalDeviceExternalBufferProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalBufferProperties"));
vkGetPhysicalDeviceExternalFenceProperties =
PFN_vkGetPhysicalDeviceExternalFenceProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalFenceProperties"));
vkGetPhysicalDeviceExternalSemaphoreProperties =
PFN_vkGetPhysicalDeviceExternalSemaphoreProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalSemaphoreProperties"));
//=== VK_VERSION_1_3 ===
vkGetPhysicalDeviceToolProperties = PFN_vkGetPhysicalDeviceToolProperties(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceToolProperties"));
//=== VK_EXT_acquire_drm_display ===
vkAcquireDrmDisplayEXT = PFN_vkAcquireDrmDisplayEXT(vkGetInstanceProcAddr(instance, "vkAcquireDrmDisplayEXT"));
vkGetDrmDisplayEXT = PFN_vkGetDrmDisplayEXT(vkGetInstanceProcAddr(instance, "vkGetDrmDisplayEXT"));
# if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
//=== VK_EXT_acquire_xlib_display ===
vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT(vkGetInstanceProcAddr(instance, "vkAcquireXlibDisplayEXT"));
vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT(vkGetInstanceProcAddr(instance, "vkGetRandROutputDisplayEXT"));
# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
//=== VK_EXT_calibrated_timestamps ===
vkGetPhysicalDeviceCalibrateableTimeDomainsEXT =
PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"));
//=== VK_EXT_debug_report ===
vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT(vkGetInstanceProcAddr(instance, "vkCreateDebugReportCallbackEXT"));
vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT(vkGetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT"));
vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT(vkGetInstanceProcAddr(instance, "vkDebugReportMessageEXT"));
//=== VK_EXT_debug_utils ===
vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT(vkGetInstanceProcAddr(instance, "vkCreateDebugUtilsMessengerEXT"));
vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT(vkGetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT"));
vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT(vkGetInstanceProcAddr(instance, "vkSubmitDebugUtilsMessageEXT"));
//=== VK_EXT_direct_mode_display ===
vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT(vkGetInstanceProcAddr(instance, "vkReleaseDisplayEXT"));
# if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
//=== VK_EXT_directfb_surface ===
vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT(vkGetInstanceProcAddr(instance, "vkCreateDirectFBSurfaceEXT"));
vkGetPhysicalDeviceDirectFBPresentationSupportEXT =
PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"));
# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
//=== VK_EXT_display_surface_counter ===
vkGetPhysicalDeviceSurfaceCapabilities2EXT =
PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"));
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_EXT_full_screen_exclusive ===
vkGetPhysicalDeviceSurfacePresentModes2EXT =
PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT"));
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_headless_surface ===
vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT(vkGetInstanceProcAddr(instance, "vkCreateHeadlessSurfaceEXT"));
# if defined(VK_USE_PLATFORM_METAL_EXT)
//=== VK_EXT_metal_surface ===
vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT(vkGetInstanceProcAddr(instance, "vkCreateMetalSurfaceEXT"));
# endif /*VK_USE_PLATFORM_METAL_EXT*/
//=== VK_EXT_sample_locations ===
vkGetPhysicalDeviceMultisamplePropertiesEXT =
PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT"));
//=== VK_EXT_tooling_info ===
vkGetPhysicalDeviceToolPropertiesEXT =
PFN_vkGetPhysicalDeviceToolPropertiesEXT(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceToolPropertiesEXT"));
if(!vkGetPhysicalDeviceToolProperties)
vkGetPhysicalDeviceToolProperties = vkGetPhysicalDeviceToolPropertiesEXT;
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_imagepipe_surface ===
vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA(vkGetInstanceProcAddr(instance, "vkCreateImagePipeSurfaceFUCHSIA"));
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_GGP)
//=== VK_GGP_stream_descriptor_surface ===
vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP(vkGetInstanceProcAddr(instance, "vkCreateStreamDescriptorSurfaceGGP"));
# endif /*VK_USE_PLATFORM_GGP*/
# if defined(VK_USE_PLATFORM_ANDROID_KHR)
//=== VK_KHR_android_surface ===
vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR(vkGetInstanceProcAddr(instance, "vkCreateAndroidSurfaceKHR"));
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
//=== VK_KHR_device_group ===
vkGetPhysicalDevicePresentRectanglesKHR =
PFN_vkGetPhysicalDevicePresentRectanglesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDevicePresentRectanglesKHR"));
//=== VK_KHR_device_group_creation ===
vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR(vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceGroupsKHR"));
if(!vkEnumeratePhysicalDeviceGroups)
vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR;
//=== VK_KHR_display ===
vkGetPhysicalDeviceDisplayPropertiesKHR =
PFN_vkGetPhysicalDeviceDisplayPropertiesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPropertiesKHR"));
vkGetPhysicalDeviceDisplayPlanePropertiesKHR =
PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"));
vkGetDisplayPlaneSupportedDisplaysKHR =
PFN_vkGetDisplayPlaneSupportedDisplaysKHR(vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneSupportedDisplaysKHR"));
vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR(vkGetInstanceProcAddr(instance, "vkGetDisplayModePropertiesKHR"));
vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR(vkGetInstanceProcAddr(instance, "vkCreateDisplayModeKHR"));
vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR(vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilitiesKHR"));
vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR(vkGetInstanceProcAddr(instance, "vkCreateDisplayPlaneSurfaceKHR"));
//=== VK_KHR_external_fence_capabilities ===
vkGetPhysicalDeviceExternalFencePropertiesKHR =
PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR"));
if(!vkGetPhysicalDeviceExternalFenceProperties)
vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR;
//=== VK_KHR_external_memory_capabilities ===
vkGetPhysicalDeviceExternalBufferPropertiesKHR =
PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"));
if(!vkGetPhysicalDeviceExternalBufferProperties)
vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR;
//=== VK_KHR_external_semaphore_capabilities ===
vkGetPhysicalDeviceExternalSemaphorePropertiesKHR =
PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"));
if(!vkGetPhysicalDeviceExternalSemaphoreProperties)
vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
//=== VK_KHR_fragment_shading_rate ===
vkGetPhysicalDeviceFragmentShadingRatesKHR =
PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR"));
//=== VK_KHR_get_display_properties2 ===
vkGetPhysicalDeviceDisplayProperties2KHR =
PFN_vkGetPhysicalDeviceDisplayProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayProperties2KHR"));
vkGetPhysicalDeviceDisplayPlaneProperties2KHR =
PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"));
vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetDisplayModeProperties2KHR"));
vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR(vkGetInstanceProcAddr(instance, "vkGetDisplayPlaneCapabilities2KHR"));
//=== VK_KHR_get_physical_device_properties2 ===
vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFeatures2KHR"));
if(!vkGetPhysicalDeviceFeatures2)
vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR;
vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceProperties2KHR"));
if(!vkGetPhysicalDeviceProperties2)
vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR;
vkGetPhysicalDeviceFormatProperties2KHR =
PFN_vkGetPhysicalDeviceFormatProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceFormatProperties2KHR"));
if(!vkGetPhysicalDeviceFormatProperties2)
vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR;
vkGetPhysicalDeviceImageFormatProperties2KHR =
PFN_vkGetPhysicalDeviceImageFormatProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceImageFormatProperties2KHR"));
if(!vkGetPhysicalDeviceImageFormatProperties2)
vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR;
vkGetPhysicalDeviceQueueFamilyProperties2KHR =
PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"));
if(!vkGetPhysicalDeviceQueueFamilyProperties2)
vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR;
vkGetPhysicalDeviceMemoryProperties2KHR =
PFN_vkGetPhysicalDeviceMemoryProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceMemoryProperties2KHR"));
if(!vkGetPhysicalDeviceMemoryProperties2)
vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR;
vkGetPhysicalDeviceSparseImageFormatProperties2KHR =
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"));
if(!vkGetPhysicalDeviceSparseImageFormatProperties2)
vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
//=== VK_KHR_get_surface_capabilities2 ===
vkGetPhysicalDeviceSurfaceCapabilities2KHR =
PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"));
vkGetPhysicalDeviceSurfaceFormats2KHR =
PFN_vkGetPhysicalDeviceSurfaceFormats2KHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormats2KHR"));
//=== VK_KHR_performance_query ===
vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
vkGetInstanceProcAddr(instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"));
vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"));
//=== VK_KHR_surface ===
vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR(vkGetInstanceProcAddr(instance, "vkDestroySurfaceKHR"));
vkGetPhysicalDeviceSurfaceSupportKHR =
PFN_vkGetPhysicalDeviceSurfaceSupportKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceSupportKHR"));
vkGetPhysicalDeviceSurfaceCapabilitiesKHR =
PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"));
vkGetPhysicalDeviceSurfaceFormatsKHR =
PFN_vkGetPhysicalDeviceSurfaceFormatsKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfaceFormatsKHR"));
vkGetPhysicalDeviceSurfacePresentModesKHR =
PFN_vkGetPhysicalDeviceSurfacePresentModesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSurfacePresentModesKHR"));
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
vkGetPhysicalDeviceVideoCapabilitiesKHR =
PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceVideoCapabilitiesKHR"));
vkGetPhysicalDeviceVideoFormatPropertiesKHR =
PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR"));
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_USE_PLATFORM_WAYLAND_KHR)
//=== VK_KHR_wayland_surface ===
vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR(vkGetInstanceProcAddr(instance, "vkCreateWaylandSurfaceKHR"));
vkGetPhysicalDeviceWaylandPresentationSupportKHR =
PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"));
# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_win32_surface ===
vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR(vkGetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR"));
vkGetPhysicalDeviceWin32PresentationSupportKHR =
PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR"));
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined(VK_USE_PLATFORM_XCB_KHR)
//=== VK_KHR_xcb_surface ===
vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR(vkGetInstanceProcAddr(instance, "vkCreateXcbSurfaceKHR"));
vkGetPhysicalDeviceXcbPresentationSupportKHR =
PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR"));
# endif /*VK_USE_PLATFORM_XCB_KHR*/
# if defined(VK_USE_PLATFORM_XLIB_KHR)
//=== VK_KHR_xlib_surface ===
vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR(vkGetInstanceProcAddr(instance, "vkCreateXlibSurfaceKHR"));
vkGetPhysicalDeviceXlibPresentationSupportKHR =
PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR"));
# endif /*VK_USE_PLATFORM_XLIB_KHR*/
# if defined(VK_USE_PLATFORM_IOS_MVK)
//=== VK_MVK_ios_surface ===
vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK(vkGetInstanceProcAddr(instance, "vkCreateIOSSurfaceMVK"));
# endif /*VK_USE_PLATFORM_IOS_MVK*/
# if defined(VK_USE_PLATFORM_MACOS_MVK)
//=== VK_MVK_macos_surface ===
vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK(vkGetInstanceProcAddr(instance, "vkCreateMacOSSurfaceMVK"));
# endif /*VK_USE_PLATFORM_MACOS_MVK*/
# if defined(VK_USE_PLATFORM_VI_NN)
//=== VK_NN_vi_surface ===
vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN(vkGetInstanceProcAddr(instance, "vkCreateViSurfaceNN"));
# endif /*VK_USE_PLATFORM_VI_NN*/
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_acquire_winrt_display ===
vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV(vkGetInstanceProcAddr(instance, "vkAcquireWinrtDisplayNV"));
vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV(vkGetInstanceProcAddr(instance, "vkGetWinrtDisplayNV"));
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_NV_cooperative_matrix ===
vkGetPhysicalDeviceCooperativeMatrixPropertiesNV =
PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"));
//=== VK_NV_coverage_reduction_mode ===
vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"));
//=== VK_NV_external_memory_capabilities ===
vkGetPhysicalDeviceExternalImageFormatPropertiesNV =
PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"));
# if defined(VK_USE_PLATFORM_SCREEN_QNX)
//=== VK_QNX_screen_surface ===
vkCreateScreenSurfaceQNX = PFN_vkCreateScreenSurfaceQNX(vkGetInstanceProcAddr(instance, "vkCreateScreenSurfaceQNX"));
vkGetPhysicalDeviceScreenPresentationSupportQNX =
PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX(vkGetInstanceProcAddr(instance, "vkGetPhysicalDeviceScreenPresentationSupportQNX"));
# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr(vkGetInstanceProcAddr(instance, "vkGetDeviceProcAddr"));
}
public:
//=== VK_VERSION_1_0 ===
PFN_vkDestroyInstance vkDestroyInstance = 0;
PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0;
PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0;
PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0;
PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0;
PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0;
PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0;
PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0;
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0;
PFN_vkCreateDevice vkCreateDevice = 0;
PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0;
PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0;
PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0;
//=== VK_VERSION_1_1 ===
PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0;
PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0;
PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0;
PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0;
PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0;
PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0;
PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0;
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0;
PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0;
PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0;
PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0;
//=== VK_VERSION_1_3 ===
PFN_vkGetPhysicalDeviceToolProperties vkGetPhysicalDeviceToolProperties = 0;
//=== VK_EXT_acquire_drm_display ===
PFN_vkAcquireDrmDisplayEXT vkAcquireDrmDisplayEXT = 0;
PFN_vkGetDrmDisplayEXT vkGetDrmDisplayEXT = 0;
# if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
//=== VK_EXT_acquire_xlib_display ===
PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0;
PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0;
# else
PFN_dummy vkAcquireXlibDisplayEXT_placeholder = 0;
PFN_dummy vkGetRandROutputDisplayEXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
//=== VK_EXT_calibrated_timestamps ===
PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0;
//=== VK_EXT_debug_report ===
PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0;
//=== VK_EXT_debug_utils ===
PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0;
PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0;
PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0;
//=== VK_EXT_direct_mode_display ===
PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0;
# if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
//=== VK_EXT_directfb_surface ===
PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0;
PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0;
# else
PFN_dummy vkCreateDirectFBSurfaceEXT_placeholder = 0;
PFN_dummy vkGetPhysicalDeviceDirectFBPresentationSupportEXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
//=== VK_EXT_display_surface_counter ===
PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_EXT_full_screen_exclusive ===
PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0;
# else
PFN_dummy vkGetPhysicalDeviceSurfacePresentModes2EXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_headless_surface ===
PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0;
# if defined(VK_USE_PLATFORM_METAL_EXT)
//=== VK_EXT_metal_surface ===
PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0;
# else
PFN_dummy vkCreateMetalSurfaceEXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_METAL_EXT*/
//=== VK_EXT_sample_locations ===
PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0;
//=== VK_EXT_tooling_info ===
PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0;
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_imagepipe_surface ===
PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0;
# else
PFN_dummy vkCreateImagePipeSurfaceFUCHSIA_placeholder = 0;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_GGP)
//=== VK_GGP_stream_descriptor_surface ===
PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0;
# else
PFN_dummy vkCreateStreamDescriptorSurfaceGGP_placeholder = 0;
# endif /*VK_USE_PLATFORM_GGP*/
# if defined(VK_USE_PLATFORM_ANDROID_KHR)
//=== VK_KHR_android_surface ===
PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0;
# else
PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
//=== VK_KHR_device_group ===
PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
//=== VK_KHR_device_group_creation ===
PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0;
//=== VK_KHR_display ===
PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0;
PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0;
PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0;
PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0;
PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0;
PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0;
PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0;
//=== VK_KHR_external_fence_capabilities ===
PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0;
//=== VK_KHR_external_memory_capabilities ===
PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0;
//=== VK_KHR_external_semaphore_capabilities ===
PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0;
//=== VK_KHR_fragment_shading_rate ===
PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0;
//=== VK_KHR_get_display_properties2 ===
PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0;
PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0;
PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0;
PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0;
//=== VK_KHR_get_physical_device_properties2 ===
PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0;
PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0;
PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0;
PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0;
PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0;
PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0;
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0;
//=== VK_KHR_get_surface_capabilities2 ===
PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0;
PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0;
//=== VK_KHR_performance_query ===
PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0;
PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0;
//=== VK_KHR_surface ===
PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0;
PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0;
PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0;
PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0;
PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0;
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR vkGetPhysicalDeviceVideoCapabilitiesKHR = 0;
PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR vkGetPhysicalDeviceVideoFormatPropertiesKHR = 0;
# else
PFN_dummy vkGetPhysicalDeviceVideoCapabilitiesKHR_placeholder = 0;
PFN_dummy vkGetPhysicalDeviceVideoFormatPropertiesKHR_placeholder = 0;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_USE_PLATFORM_WAYLAND_KHR)
//=== VK_KHR_wayland_surface ===
PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0;
PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0;
# else
PFN_dummy vkCreateWaylandSurfaceKHR_placeholder = 0;
PFN_dummy vkGetPhysicalDeviceWaylandPresentationSupportKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_win32_surface ===
PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0;
PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0;
# else
PFN_dummy vkCreateWin32SurfaceKHR_placeholder = 0;
PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined(VK_USE_PLATFORM_XCB_KHR)
//=== VK_KHR_xcb_surface ===
PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0;
PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0;
# else
PFN_dummy vkCreateXcbSurfaceKHR_placeholder = 0;
PFN_dummy vkGetPhysicalDeviceXcbPresentationSupportKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_XCB_KHR*/
# if defined(VK_USE_PLATFORM_XLIB_KHR)
//=== VK_KHR_xlib_surface ===
PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0;
PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0;
# else
PFN_dummy vkCreateXlibSurfaceKHR_placeholder = 0;
PFN_dummy vkGetPhysicalDeviceXlibPresentationSupportKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_XLIB_KHR*/
# if defined(VK_USE_PLATFORM_IOS_MVK)
//=== VK_MVK_ios_surface ===
PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0;
# else
PFN_dummy vkCreateIOSSurfaceMVK_placeholder = 0;
# endif /*VK_USE_PLATFORM_IOS_MVK*/
# if defined(VK_USE_PLATFORM_MACOS_MVK)
//=== VK_MVK_macos_surface ===
PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0;
# else
PFN_dummy vkCreateMacOSSurfaceMVK_placeholder = 0;
# endif /*VK_USE_PLATFORM_MACOS_MVK*/
# if defined(VK_USE_PLATFORM_VI_NN)
//=== VK_NN_vi_surface ===
PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0;
# else
PFN_dummy vkCreateViSurfaceNN_placeholder = 0;
# endif /*VK_USE_PLATFORM_VI_NN*/
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_acquire_winrt_display ===
PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0;
PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0;
# else
PFN_dummy vkAcquireWinrtDisplayNV_placeholder = 0;
PFN_dummy vkGetWinrtDisplayNV_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_NV_cooperative_matrix ===
PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0;
//=== VK_NV_coverage_reduction_mode ===
PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0;
//=== VK_NV_external_memory_capabilities ===
PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0;
# if defined(VK_USE_PLATFORM_SCREEN_QNX)
//=== VK_QNX_screen_surface ===
PFN_vkCreateScreenSurfaceQNX vkCreateScreenSurfaceQNX = 0;
PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX vkGetPhysicalDeviceScreenPresentationSupportQNX = 0;
# else
PFN_dummy vkCreateScreenSurfaceQNX_placeholder = 0;
PFN_dummy vkGetPhysicalDeviceScreenPresentationSupportQNX_placeholder = 0;
# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
};
class DeviceDispatcher : public DispatchLoaderBase
{
public:
DeviceDispatcher(PFN_vkGetDeviceProcAddr getProcAddr, VkDevice device)
: vkGetDeviceProcAddr(getProcAddr)
{
//=== VK_VERSION_1_0 ===
vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr(vkGetDeviceProcAddr(device, "vkGetDeviceProcAddr"));
vkDestroyDevice = PFN_vkDestroyDevice(vkGetDeviceProcAddr(device, "vkDestroyDevice"));
vkGetDeviceQueue = PFN_vkGetDeviceQueue(vkGetDeviceProcAddr(device, "vkGetDeviceQueue"));
vkQueueSubmit = PFN_vkQueueSubmit(vkGetDeviceProcAddr(device, "vkQueueSubmit"));
vkQueueWaitIdle = PFN_vkQueueWaitIdle(vkGetDeviceProcAddr(device, "vkQueueWaitIdle"));
vkDeviceWaitIdle = PFN_vkDeviceWaitIdle(vkGetDeviceProcAddr(device, "vkDeviceWaitIdle"));
vkAllocateMemory = PFN_vkAllocateMemory(vkGetDeviceProcAddr(device, "vkAllocateMemory"));
vkFreeMemory = PFN_vkFreeMemory(vkGetDeviceProcAddr(device, "vkFreeMemory"));
vkMapMemory = PFN_vkMapMemory(vkGetDeviceProcAddr(device, "vkMapMemory"));
vkUnmapMemory = PFN_vkUnmapMemory(vkGetDeviceProcAddr(device, "vkUnmapMemory"));
vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges(vkGetDeviceProcAddr(device, "vkFlushMappedMemoryRanges"));
vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges(vkGetDeviceProcAddr(device, "vkInvalidateMappedMemoryRanges"));
vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment(vkGetDeviceProcAddr(device, "vkGetDeviceMemoryCommitment"));
vkBindBufferMemory = PFN_vkBindBufferMemory(vkGetDeviceProcAddr(device, "vkBindBufferMemory"));
vkBindImageMemory = PFN_vkBindImageMemory(vkGetDeviceProcAddr(device, "vkBindImageMemory"));
vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements(vkGetDeviceProcAddr(device, "vkGetBufferMemoryRequirements"));
vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements(vkGetDeviceProcAddr(device, "vkGetImageMemoryRequirements"));
vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements(vkGetDeviceProcAddr(device, "vkGetImageSparseMemoryRequirements"));
vkQueueBindSparse = PFN_vkQueueBindSparse(vkGetDeviceProcAddr(device, "vkQueueBindSparse"));
vkCreateFence = PFN_vkCreateFence(vkGetDeviceProcAddr(device, "vkCreateFence"));
vkDestroyFence = PFN_vkDestroyFence(vkGetDeviceProcAddr(device, "vkDestroyFence"));
vkResetFences = PFN_vkResetFences(vkGetDeviceProcAddr(device, "vkResetFences"));
vkGetFenceStatus = PFN_vkGetFenceStatus(vkGetDeviceProcAddr(device, "vkGetFenceStatus"));
vkWaitForFences = PFN_vkWaitForFences(vkGetDeviceProcAddr(device, "vkWaitForFences"));
vkCreateSemaphore = PFN_vkCreateSemaphore(vkGetDeviceProcAddr(device, "vkCreateSemaphore"));
vkDestroySemaphore = PFN_vkDestroySemaphore(vkGetDeviceProcAddr(device, "vkDestroySemaphore"));
vkCreateEvent = PFN_vkCreateEvent(vkGetDeviceProcAddr(device, "vkCreateEvent"));
vkDestroyEvent = PFN_vkDestroyEvent(vkGetDeviceProcAddr(device, "vkDestroyEvent"));
vkGetEventStatus = PFN_vkGetEventStatus(vkGetDeviceProcAddr(device, "vkGetEventStatus"));
vkSetEvent = PFN_vkSetEvent(vkGetDeviceProcAddr(device, "vkSetEvent"));
vkResetEvent = PFN_vkResetEvent(vkGetDeviceProcAddr(device, "vkResetEvent"));
vkCreateQueryPool = PFN_vkCreateQueryPool(vkGetDeviceProcAddr(device, "vkCreateQueryPool"));
vkDestroyQueryPool = PFN_vkDestroyQueryPool(vkGetDeviceProcAddr(device, "vkDestroyQueryPool"));
vkGetQueryPoolResults = PFN_vkGetQueryPoolResults(vkGetDeviceProcAddr(device, "vkGetQueryPoolResults"));
vkCreateBuffer = PFN_vkCreateBuffer(vkGetDeviceProcAddr(device, "vkCreateBuffer"));
vkDestroyBuffer = PFN_vkDestroyBuffer(vkGetDeviceProcAddr(device, "vkDestroyBuffer"));
vkCreateBufferView = PFN_vkCreateBufferView(vkGetDeviceProcAddr(device, "vkCreateBufferView"));
vkDestroyBufferView = PFN_vkDestroyBufferView(vkGetDeviceProcAddr(device, "vkDestroyBufferView"));
vkCreateImage = PFN_vkCreateImage(vkGetDeviceProcAddr(device, "vkCreateImage"));
vkDestroyImage = PFN_vkDestroyImage(vkGetDeviceProcAddr(device, "vkDestroyImage"));
vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout(vkGetDeviceProcAddr(device, "vkGetImageSubresourceLayout"));
vkCreateImageView = PFN_vkCreateImageView(vkGetDeviceProcAddr(device, "vkCreateImageView"));
vkDestroyImageView = PFN_vkDestroyImageView(vkGetDeviceProcAddr(device, "vkDestroyImageView"));
vkCreateShaderModule = PFN_vkCreateShaderModule(vkGetDeviceProcAddr(device, "vkCreateShaderModule"));
vkDestroyShaderModule = PFN_vkDestroyShaderModule(vkGetDeviceProcAddr(device, "vkDestroyShaderModule"));
vkCreatePipelineCache = PFN_vkCreatePipelineCache(vkGetDeviceProcAddr(device, "vkCreatePipelineCache"));
vkDestroyPipelineCache = PFN_vkDestroyPipelineCache(vkGetDeviceProcAddr(device, "vkDestroyPipelineCache"));
vkGetPipelineCacheData = PFN_vkGetPipelineCacheData(vkGetDeviceProcAddr(device, "vkGetPipelineCacheData"));
vkMergePipelineCaches = PFN_vkMergePipelineCaches(vkGetDeviceProcAddr(device, "vkMergePipelineCaches"));
vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines(vkGetDeviceProcAddr(device, "vkCreateGraphicsPipelines"));
vkCreateComputePipelines = PFN_vkCreateComputePipelines(vkGetDeviceProcAddr(device, "vkCreateComputePipelines"));
vkDestroyPipeline = PFN_vkDestroyPipeline(vkGetDeviceProcAddr(device, "vkDestroyPipeline"));
vkCreatePipelineLayout = PFN_vkCreatePipelineLayout(vkGetDeviceProcAddr(device, "vkCreatePipelineLayout"));
vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout(vkGetDeviceProcAddr(device, "vkDestroyPipelineLayout"));
vkCreateSampler = PFN_vkCreateSampler(vkGetDeviceProcAddr(device, "vkCreateSampler"));
vkDestroySampler = PFN_vkDestroySampler(vkGetDeviceProcAddr(device, "vkDestroySampler"));
vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout(vkGetDeviceProcAddr(device, "vkCreateDescriptorSetLayout"));
vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout(vkGetDeviceProcAddr(device, "vkDestroyDescriptorSetLayout"));
vkCreateDescriptorPool = PFN_vkCreateDescriptorPool(vkGetDeviceProcAddr(device, "vkCreateDescriptorPool"));
vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool(vkGetDeviceProcAddr(device, "vkDestroyDescriptorPool"));
vkResetDescriptorPool = PFN_vkResetDescriptorPool(vkGetDeviceProcAddr(device, "vkResetDescriptorPool"));
vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets(vkGetDeviceProcAddr(device, "vkAllocateDescriptorSets"));
vkFreeDescriptorSets = PFN_vkFreeDescriptorSets(vkGetDeviceProcAddr(device, "vkFreeDescriptorSets"));
vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets(vkGetDeviceProcAddr(device, "vkUpdateDescriptorSets"));
vkCreateFramebuffer = PFN_vkCreateFramebuffer(vkGetDeviceProcAddr(device, "vkCreateFramebuffer"));
vkDestroyFramebuffer = PFN_vkDestroyFramebuffer(vkGetDeviceProcAddr(device, "vkDestroyFramebuffer"));
vkCreateRenderPass = PFN_vkCreateRenderPass(vkGetDeviceProcAddr(device, "vkCreateRenderPass"));
vkDestroyRenderPass = PFN_vkDestroyRenderPass(vkGetDeviceProcAddr(device, "vkDestroyRenderPass"));
vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity(vkGetDeviceProcAddr(device, "vkGetRenderAreaGranularity"));
vkCreateCommandPool = PFN_vkCreateCommandPool(vkGetDeviceProcAddr(device, "vkCreateCommandPool"));
vkDestroyCommandPool = PFN_vkDestroyCommandPool(vkGetDeviceProcAddr(device, "vkDestroyCommandPool"));
vkResetCommandPool = PFN_vkResetCommandPool(vkGetDeviceProcAddr(device, "vkResetCommandPool"));
vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers(vkGetDeviceProcAddr(device, "vkAllocateCommandBuffers"));
vkFreeCommandBuffers = PFN_vkFreeCommandBuffers(vkGetDeviceProcAddr(device, "vkFreeCommandBuffers"));
vkBeginCommandBuffer = PFN_vkBeginCommandBuffer(vkGetDeviceProcAddr(device, "vkBeginCommandBuffer"));
vkEndCommandBuffer = PFN_vkEndCommandBuffer(vkGetDeviceProcAddr(device, "vkEndCommandBuffer"));
vkResetCommandBuffer = PFN_vkResetCommandBuffer(vkGetDeviceProcAddr(device, "vkResetCommandBuffer"));
vkCmdBindPipeline = PFN_vkCmdBindPipeline(vkGetDeviceProcAddr(device, "vkCmdBindPipeline"));
vkCmdSetViewport = PFN_vkCmdSetViewport(vkGetDeviceProcAddr(device, "vkCmdSetViewport"));
vkCmdSetScissor = PFN_vkCmdSetScissor(vkGetDeviceProcAddr(device, "vkCmdSetScissor"));
vkCmdSetLineWidth = PFN_vkCmdSetLineWidth(vkGetDeviceProcAddr(device, "vkCmdSetLineWidth"));
vkCmdSetDepthBias = PFN_vkCmdSetDepthBias(vkGetDeviceProcAddr(device, "vkCmdSetDepthBias"));
vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants(vkGetDeviceProcAddr(device, "vkCmdSetBlendConstants"));
vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds(vkGetDeviceProcAddr(device, "vkCmdSetDepthBounds"));
vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask(vkGetDeviceProcAddr(device, "vkCmdSetStencilCompareMask"));
vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask(vkGetDeviceProcAddr(device, "vkCmdSetStencilWriteMask"));
vkCmdSetStencilReference = PFN_vkCmdSetStencilReference(vkGetDeviceProcAddr(device, "vkCmdSetStencilReference"));
vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets(vkGetDeviceProcAddr(device, "vkCmdBindDescriptorSets"));
vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer(vkGetDeviceProcAddr(device, "vkCmdBindIndexBuffer"));
vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers(vkGetDeviceProcAddr(device, "vkCmdBindVertexBuffers"));
vkCmdDraw = PFN_vkCmdDraw(vkGetDeviceProcAddr(device, "vkCmdDraw"));
vkCmdDrawIndexed = PFN_vkCmdDrawIndexed(vkGetDeviceProcAddr(device, "vkCmdDrawIndexed"));
vkCmdDrawIndirect = PFN_vkCmdDrawIndirect(vkGetDeviceProcAddr(device, "vkCmdDrawIndirect"));
vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect(vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirect"));
vkCmdDispatch = PFN_vkCmdDispatch(vkGetDeviceProcAddr(device, "vkCmdDispatch"));
vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect(vkGetDeviceProcAddr(device, "vkCmdDispatchIndirect"));
vkCmdCopyBuffer = PFN_vkCmdCopyBuffer(vkGetDeviceProcAddr(device, "vkCmdCopyBuffer"));
vkCmdCopyImage = PFN_vkCmdCopyImage(vkGetDeviceProcAddr(device, "vkCmdCopyImage"));
vkCmdBlitImage = PFN_vkCmdBlitImage(vkGetDeviceProcAddr(device, "vkCmdBlitImage"));
vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage(vkGetDeviceProcAddr(device, "vkCmdCopyBufferToImage"));
vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer(vkGetDeviceProcAddr(device, "vkCmdCopyImageToBuffer"));
vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer(vkGetDeviceProcAddr(device, "vkCmdUpdateBuffer"));
vkCmdFillBuffer = PFN_vkCmdFillBuffer(vkGetDeviceProcAddr(device, "vkCmdFillBuffer"));
vkCmdClearColorImage = PFN_vkCmdClearColorImage(vkGetDeviceProcAddr(device, "vkCmdClearColorImage"));
vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage(vkGetDeviceProcAddr(device, "vkCmdClearDepthStencilImage"));
vkCmdClearAttachments = PFN_vkCmdClearAttachments(vkGetDeviceProcAddr(device, "vkCmdClearAttachments"));
vkCmdResolveImage = PFN_vkCmdResolveImage(vkGetDeviceProcAddr(device, "vkCmdResolveImage"));
vkCmdSetEvent = PFN_vkCmdSetEvent(vkGetDeviceProcAddr(device, "vkCmdSetEvent"));
vkCmdResetEvent = PFN_vkCmdResetEvent(vkGetDeviceProcAddr(device, "vkCmdResetEvent"));
vkCmdWaitEvents = PFN_vkCmdWaitEvents(vkGetDeviceProcAddr(device, "vkCmdWaitEvents"));
vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier(vkGetDeviceProcAddr(device, "vkCmdPipelineBarrier"));
vkCmdBeginQuery = PFN_vkCmdBeginQuery(vkGetDeviceProcAddr(device, "vkCmdBeginQuery"));
vkCmdEndQuery = PFN_vkCmdEndQuery(vkGetDeviceProcAddr(device, "vkCmdEndQuery"));
vkCmdResetQueryPool = PFN_vkCmdResetQueryPool(vkGetDeviceProcAddr(device, "vkCmdResetQueryPool"));
vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp(vkGetDeviceProcAddr(device, "vkCmdWriteTimestamp"));
vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults(vkGetDeviceProcAddr(device, "vkCmdCopyQueryPoolResults"));
vkCmdPushConstants = PFN_vkCmdPushConstants(vkGetDeviceProcAddr(device, "vkCmdPushConstants"));
vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass(vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass"));
vkCmdNextSubpass = PFN_vkCmdNextSubpass(vkGetDeviceProcAddr(device, "vkCmdNextSubpass"));
vkCmdEndRenderPass = PFN_vkCmdEndRenderPass(vkGetDeviceProcAddr(device, "vkCmdEndRenderPass"));
vkCmdExecuteCommands = PFN_vkCmdExecuteCommands(vkGetDeviceProcAddr(device, "vkCmdExecuteCommands"));
//=== VK_VERSION_1_1 ===
vkBindBufferMemory2 = PFN_vkBindBufferMemory2(vkGetDeviceProcAddr(device, "vkBindBufferMemory2"));
vkBindImageMemory2 = PFN_vkBindImageMemory2(vkGetDeviceProcAddr(device, "vkBindImageMemory2"));
vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures(vkGetDeviceProcAddr(device, "vkGetDeviceGroupPeerMemoryFeatures"));
vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask(vkGetDeviceProcAddr(device, "vkCmdSetDeviceMask"));
vkCmdDispatchBase = PFN_vkCmdDispatchBase(vkGetDeviceProcAddr(device, "vkCmdDispatchBase"));
vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2(vkGetDeviceProcAddr(device, "vkGetImageMemoryRequirements2"));
vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2(vkGetDeviceProcAddr(device, "vkGetBufferMemoryRequirements2"));
vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2(vkGetDeviceProcAddr(device, "vkGetImageSparseMemoryRequirements2"));
vkTrimCommandPool = PFN_vkTrimCommandPool(vkGetDeviceProcAddr(device, "vkTrimCommandPool"));
vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2(vkGetDeviceProcAddr(device, "vkGetDeviceQueue2"));
vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion(vkGetDeviceProcAddr(device, "vkCreateSamplerYcbcrConversion"));
vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion(vkGetDeviceProcAddr(device, "vkDestroySamplerYcbcrConversion"));
vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate(vkGetDeviceProcAddr(device, "vkCreateDescriptorUpdateTemplate"));
vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate(vkGetDeviceProcAddr(device, "vkDestroyDescriptorUpdateTemplate"));
vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate(vkGetDeviceProcAddr(device, "vkUpdateDescriptorSetWithTemplate"));
vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport(vkGetDeviceProcAddr(device, "vkGetDescriptorSetLayoutSupport"));
//=== VK_VERSION_1_2 ===
vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount(vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCount"));
vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount(vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirectCount"));
vkCreateRenderPass2 = PFN_vkCreateRenderPass2(vkGetDeviceProcAddr(device, "vkCreateRenderPass2"));
vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2(vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass2"));
vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2(vkGetDeviceProcAddr(device, "vkCmdNextSubpass2"));
vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2(vkGetDeviceProcAddr(device, "vkCmdEndRenderPass2"));
vkResetQueryPool = PFN_vkResetQueryPool(vkGetDeviceProcAddr(device, "vkResetQueryPool"));
vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue(vkGetDeviceProcAddr(device, "vkGetSemaphoreCounterValue"));
vkWaitSemaphores = PFN_vkWaitSemaphores(vkGetDeviceProcAddr(device, "vkWaitSemaphores"));
vkSignalSemaphore = PFN_vkSignalSemaphore(vkGetDeviceProcAddr(device, "vkSignalSemaphore"));
vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress(vkGetDeviceProcAddr(device, "vkGetBufferDeviceAddress"));
vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress(vkGetDeviceProcAddr(device, "vkGetBufferOpaqueCaptureAddress"));
vkGetDeviceMemoryOpaqueCaptureAddress =
PFN_vkGetDeviceMemoryOpaqueCaptureAddress(vkGetDeviceProcAddr(device, "vkGetDeviceMemoryOpaqueCaptureAddress"));
//=== VK_VERSION_1_3 ===
vkCreatePrivateDataSlot = PFN_vkCreatePrivateDataSlot(vkGetDeviceProcAddr(device, "vkCreatePrivateDataSlot"));
vkDestroyPrivateDataSlot = PFN_vkDestroyPrivateDataSlot(vkGetDeviceProcAddr(device, "vkDestroyPrivateDataSlot"));
vkSetPrivateData = PFN_vkSetPrivateData(vkGetDeviceProcAddr(device, "vkSetPrivateData"));
vkGetPrivateData = PFN_vkGetPrivateData(vkGetDeviceProcAddr(device, "vkGetPrivateData"));
vkCmdSetEvent2 = PFN_vkCmdSetEvent2(vkGetDeviceProcAddr(device, "vkCmdSetEvent2"));
vkCmdResetEvent2 = PFN_vkCmdResetEvent2(vkGetDeviceProcAddr(device, "vkCmdResetEvent2"));
vkCmdWaitEvents2 = PFN_vkCmdWaitEvents2(vkGetDeviceProcAddr(device, "vkCmdWaitEvents2"));
vkCmdPipelineBarrier2 = PFN_vkCmdPipelineBarrier2(vkGetDeviceProcAddr(device, "vkCmdPipelineBarrier2"));
vkCmdWriteTimestamp2 = PFN_vkCmdWriteTimestamp2(vkGetDeviceProcAddr(device, "vkCmdWriteTimestamp2"));
vkQueueSubmit2 = PFN_vkQueueSubmit2(vkGetDeviceProcAddr(device, "vkQueueSubmit2"));
vkCmdCopyBuffer2 = PFN_vkCmdCopyBuffer2(vkGetDeviceProcAddr(device, "vkCmdCopyBuffer2"));
vkCmdCopyImage2 = PFN_vkCmdCopyImage2(vkGetDeviceProcAddr(device, "vkCmdCopyImage2"));
vkCmdCopyBufferToImage2 = PFN_vkCmdCopyBufferToImage2(vkGetDeviceProcAddr(device, "vkCmdCopyBufferToImage2"));
vkCmdCopyImageToBuffer2 = PFN_vkCmdCopyImageToBuffer2(vkGetDeviceProcAddr(device, "vkCmdCopyImageToBuffer2"));
vkCmdBlitImage2 = PFN_vkCmdBlitImage2(vkGetDeviceProcAddr(device, "vkCmdBlitImage2"));
vkCmdResolveImage2 = PFN_vkCmdResolveImage2(vkGetDeviceProcAddr(device, "vkCmdResolveImage2"));
vkCmdBeginRendering = PFN_vkCmdBeginRendering(vkGetDeviceProcAddr(device, "vkCmdBeginRendering"));
vkCmdEndRendering = PFN_vkCmdEndRendering(vkGetDeviceProcAddr(device, "vkCmdEndRendering"));
vkCmdSetCullMode = PFN_vkCmdSetCullMode(vkGetDeviceProcAddr(device, "vkCmdSetCullMode"));
vkCmdSetFrontFace = PFN_vkCmdSetFrontFace(vkGetDeviceProcAddr(device, "vkCmdSetFrontFace"));
vkCmdSetPrimitiveTopology = PFN_vkCmdSetPrimitiveTopology(vkGetDeviceProcAddr(device, "vkCmdSetPrimitiveTopology"));
vkCmdSetViewportWithCount = PFN_vkCmdSetViewportWithCount(vkGetDeviceProcAddr(device, "vkCmdSetViewportWithCount"));
vkCmdSetScissorWithCount = PFN_vkCmdSetScissorWithCount(vkGetDeviceProcAddr(device, "vkCmdSetScissorWithCount"));
vkCmdBindVertexBuffers2 = PFN_vkCmdBindVertexBuffers2(vkGetDeviceProcAddr(device, "vkCmdBindVertexBuffers2"));
vkCmdSetDepthTestEnable = PFN_vkCmdSetDepthTestEnable(vkGetDeviceProcAddr(device, "vkCmdSetDepthTestEnable"));
vkCmdSetDepthWriteEnable = PFN_vkCmdSetDepthWriteEnable(vkGetDeviceProcAddr(device, "vkCmdSetDepthWriteEnable"));
vkCmdSetDepthCompareOp = PFN_vkCmdSetDepthCompareOp(vkGetDeviceProcAddr(device, "vkCmdSetDepthCompareOp"));
vkCmdSetDepthBoundsTestEnable = PFN_vkCmdSetDepthBoundsTestEnable(vkGetDeviceProcAddr(device, "vkCmdSetDepthBoundsTestEnable"));
vkCmdSetStencilTestEnable = PFN_vkCmdSetStencilTestEnable(vkGetDeviceProcAddr(device, "vkCmdSetStencilTestEnable"));
vkCmdSetStencilOp = PFN_vkCmdSetStencilOp(vkGetDeviceProcAddr(device, "vkCmdSetStencilOp"));
vkCmdSetRasterizerDiscardEnable = PFN_vkCmdSetRasterizerDiscardEnable(vkGetDeviceProcAddr(device, "vkCmdSetRasterizerDiscardEnable"));
vkCmdSetDepthBiasEnable = PFN_vkCmdSetDepthBiasEnable(vkGetDeviceProcAddr(device, "vkCmdSetDepthBiasEnable"));
vkCmdSetPrimitiveRestartEnable = PFN_vkCmdSetPrimitiveRestartEnable(vkGetDeviceProcAddr(device, "vkCmdSetPrimitiveRestartEnable"));
vkGetDeviceBufferMemoryRequirements = PFN_vkGetDeviceBufferMemoryRequirements(vkGetDeviceProcAddr(device, "vkGetDeviceBufferMemoryRequirements"));
vkGetDeviceImageMemoryRequirements = PFN_vkGetDeviceImageMemoryRequirements(vkGetDeviceProcAddr(device, "vkGetDeviceImageMemoryRequirements"));
vkGetDeviceImageSparseMemoryRequirements =
PFN_vkGetDeviceImageSparseMemoryRequirements(vkGetDeviceProcAddr(device, "vkGetDeviceImageSparseMemoryRequirements"));
//=== VK_AMD_buffer_marker ===
vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD(vkGetDeviceProcAddr(device, "vkCmdWriteBufferMarkerAMD"));
//=== VK_AMD_display_native_hdr ===
vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD(vkGetDeviceProcAddr(device, "vkSetLocalDimmingAMD"));
//=== VK_AMD_draw_indirect_count ===
vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD(vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCountAMD"));
if(!vkCmdDrawIndirectCount)
vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD;
vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD(vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirectCountAMD"));
if(!vkCmdDrawIndexedIndirectCount)
vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD;
//=== VK_AMD_shader_info ===
vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD(vkGetDeviceProcAddr(device, "vkGetShaderInfoAMD"));
# if defined(VK_USE_PLATFORM_ANDROID_KHR)
//=== VK_ANDROID_external_memory_android_hardware_buffer ===
vkGetAndroidHardwareBufferPropertiesANDROID =
PFN_vkGetAndroidHardwareBufferPropertiesANDROID(vkGetDeviceProcAddr(device, "vkGetAndroidHardwareBufferPropertiesANDROID"));
vkGetMemoryAndroidHardwareBufferANDROID =
PFN_vkGetMemoryAndroidHardwareBufferANDROID(vkGetDeviceProcAddr(device, "vkGetMemoryAndroidHardwareBufferANDROID"));
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
//=== VK_EXT_buffer_device_address ===
vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT(vkGetDeviceProcAddr(device, "vkGetBufferDeviceAddressEXT"));
if(!vkGetBufferDeviceAddress)
vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT;
//=== VK_EXT_calibrated_timestamps ===
vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT(vkGetDeviceProcAddr(device, "vkGetCalibratedTimestampsEXT"));
//=== VK_EXT_color_write_enable ===
vkCmdSetColorWriteEnableEXT = PFN_vkCmdSetColorWriteEnableEXT(vkGetDeviceProcAddr(device, "vkCmdSetColorWriteEnableEXT"));
//=== VK_EXT_conditional_rendering ===
vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT(vkGetDeviceProcAddr(device, "vkCmdBeginConditionalRenderingEXT"));
vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT(vkGetDeviceProcAddr(device, "vkCmdEndConditionalRenderingEXT"));
//=== VK_EXT_debug_marker ===
vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT(vkGetDeviceProcAddr(device, "vkDebugMarkerSetObjectTagEXT"));
vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT(vkGetDeviceProcAddr(device, "vkDebugMarkerSetObjectNameEXT"));
vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT(vkGetDeviceProcAddr(device, "vkCmdDebugMarkerBeginEXT"));
vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT(vkGetDeviceProcAddr(device, "vkCmdDebugMarkerEndEXT"));
vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT(vkGetDeviceProcAddr(device, "vkCmdDebugMarkerInsertEXT"));
//=== VK_EXT_debug_utils ===
vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT(vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectNameEXT"));
vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT(vkGetDeviceProcAddr(device, "vkSetDebugUtilsObjectTagEXT"));
vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT(vkGetDeviceProcAddr(device, "vkQueueBeginDebugUtilsLabelEXT"));
vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT(vkGetDeviceProcAddr(device, "vkQueueEndDebugUtilsLabelEXT"));
vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT(vkGetDeviceProcAddr(device, "vkQueueInsertDebugUtilsLabelEXT"));
vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT(vkGetDeviceProcAddr(device, "vkCmdBeginDebugUtilsLabelEXT"));
vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT(vkGetDeviceProcAddr(device, "vkCmdEndDebugUtilsLabelEXT"));
vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT(vkGetDeviceProcAddr(device, "vkCmdInsertDebugUtilsLabelEXT"));
//=== VK_EXT_discard_rectangles ===
vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT(vkGetDeviceProcAddr(device, "vkCmdSetDiscardRectangleEXT"));
//=== VK_EXT_display_control ===
vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT(vkGetDeviceProcAddr(device, "vkDisplayPowerControlEXT"));
vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT(vkGetDeviceProcAddr(device, "vkRegisterDeviceEventEXT"));
vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT(vkGetDeviceProcAddr(device, "vkRegisterDisplayEventEXT"));
vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT(vkGetDeviceProcAddr(device, "vkGetSwapchainCounterEXT"));
//=== VK_EXT_extended_dynamic_state ===
vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT(vkGetDeviceProcAddr(device, "vkCmdSetCullModeEXT"));
if(!vkCmdSetCullMode)
vkCmdSetCullMode = vkCmdSetCullModeEXT;
vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT(vkGetDeviceProcAddr(device, "vkCmdSetFrontFaceEXT"));
if(!vkCmdSetFrontFace)
vkCmdSetFrontFace = vkCmdSetFrontFaceEXT;
vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT(vkGetDeviceProcAddr(device, "vkCmdSetPrimitiveTopologyEXT"));
if(!vkCmdSetPrimitiveTopology)
vkCmdSetPrimitiveTopology = vkCmdSetPrimitiveTopologyEXT;
vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT(vkGetDeviceProcAddr(device, "vkCmdSetViewportWithCountEXT"));
if(!vkCmdSetViewportWithCount)
vkCmdSetViewportWithCount = vkCmdSetViewportWithCountEXT;
vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT(vkGetDeviceProcAddr(device, "vkCmdSetScissorWithCountEXT"));
if(!vkCmdSetScissorWithCount)
vkCmdSetScissorWithCount = vkCmdSetScissorWithCountEXT;
vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT(vkGetDeviceProcAddr(device, "vkCmdBindVertexBuffers2EXT"));
if(!vkCmdBindVertexBuffers2)
vkCmdBindVertexBuffers2 = vkCmdBindVertexBuffers2EXT;
vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT(vkGetDeviceProcAddr(device, "vkCmdSetDepthTestEnableEXT"));
if(!vkCmdSetDepthTestEnable)
vkCmdSetDepthTestEnable = vkCmdSetDepthTestEnableEXT;
vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT(vkGetDeviceProcAddr(device, "vkCmdSetDepthWriteEnableEXT"));
if(!vkCmdSetDepthWriteEnable)
vkCmdSetDepthWriteEnable = vkCmdSetDepthWriteEnableEXT;
vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT(vkGetDeviceProcAddr(device, "vkCmdSetDepthCompareOpEXT"));
if(!vkCmdSetDepthCompareOp)
vkCmdSetDepthCompareOp = vkCmdSetDepthCompareOpEXT;
vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT(vkGetDeviceProcAddr(device, "vkCmdSetDepthBoundsTestEnableEXT"));
if(!vkCmdSetDepthBoundsTestEnable)
vkCmdSetDepthBoundsTestEnable = vkCmdSetDepthBoundsTestEnableEXT;
vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT(vkGetDeviceProcAddr(device, "vkCmdSetStencilTestEnableEXT"));
if(!vkCmdSetStencilTestEnable)
vkCmdSetStencilTestEnable = vkCmdSetStencilTestEnableEXT;
vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT(vkGetDeviceProcAddr(device, "vkCmdSetStencilOpEXT"));
if(!vkCmdSetStencilOp)
vkCmdSetStencilOp = vkCmdSetStencilOpEXT;
//=== VK_EXT_extended_dynamic_state2 ===
vkCmdSetPatchControlPointsEXT = PFN_vkCmdSetPatchControlPointsEXT(vkGetDeviceProcAddr(device, "vkCmdSetPatchControlPointsEXT"));
vkCmdSetRasterizerDiscardEnableEXT = PFN_vkCmdSetRasterizerDiscardEnableEXT(vkGetDeviceProcAddr(device, "vkCmdSetRasterizerDiscardEnableEXT"));
if(!vkCmdSetRasterizerDiscardEnable)
vkCmdSetRasterizerDiscardEnable = vkCmdSetRasterizerDiscardEnableEXT;
vkCmdSetDepthBiasEnableEXT = PFN_vkCmdSetDepthBiasEnableEXT(vkGetDeviceProcAddr(device, "vkCmdSetDepthBiasEnableEXT"));
if(!vkCmdSetDepthBiasEnable)
vkCmdSetDepthBiasEnable = vkCmdSetDepthBiasEnableEXT;
vkCmdSetLogicOpEXT = PFN_vkCmdSetLogicOpEXT(vkGetDeviceProcAddr(device, "vkCmdSetLogicOpEXT"));
vkCmdSetPrimitiveRestartEnableEXT = PFN_vkCmdSetPrimitiveRestartEnableEXT(vkGetDeviceProcAddr(device, "vkCmdSetPrimitiveRestartEnableEXT"));
if(!vkCmdSetPrimitiveRestartEnable)
vkCmdSetPrimitiveRestartEnable = vkCmdSetPrimitiveRestartEnableEXT;
//=== VK_EXT_external_memory_host ===
vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT(vkGetDeviceProcAddr(device, "vkGetMemoryHostPointerPropertiesEXT"));
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_EXT_full_screen_exclusive ===
vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT(vkGetDeviceProcAddr(device, "vkAcquireFullScreenExclusiveModeEXT"));
vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT(vkGetDeviceProcAddr(device, "vkReleaseFullScreenExclusiveModeEXT"));
vkGetDeviceGroupSurfacePresentModes2EXT =
PFN_vkGetDeviceGroupSurfacePresentModes2EXT(vkGetDeviceProcAddr(device, "vkGetDeviceGroupSurfacePresentModes2EXT"));
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_hdr_metadata ===
vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT(vkGetDeviceProcAddr(device, "vkSetHdrMetadataEXT"));
//=== VK_EXT_host_query_reset ===
vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT(vkGetDeviceProcAddr(device, "vkResetQueryPoolEXT"));
if(!vkResetQueryPool)
vkResetQueryPool = vkResetQueryPoolEXT;
//=== VK_EXT_image_drm_format_modifier ===
vkGetImageDrmFormatModifierPropertiesEXT =
PFN_vkGetImageDrmFormatModifierPropertiesEXT(vkGetDeviceProcAddr(device, "vkGetImageDrmFormatModifierPropertiesEXT"));
//=== VK_EXT_line_rasterization ===
vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT(vkGetDeviceProcAddr(device, "vkCmdSetLineStippleEXT"));
//=== VK_EXT_multi_draw ===
vkCmdDrawMultiEXT = PFN_vkCmdDrawMultiEXT(vkGetDeviceProcAddr(device, "vkCmdDrawMultiEXT"));
vkCmdDrawMultiIndexedEXT = PFN_vkCmdDrawMultiIndexedEXT(vkGetDeviceProcAddr(device, "vkCmdDrawMultiIndexedEXT"));
//=== VK_EXT_pageable_device_local_memory ===
vkSetDeviceMemoryPriorityEXT = PFN_vkSetDeviceMemoryPriorityEXT(vkGetDeviceProcAddr(device, "vkSetDeviceMemoryPriorityEXT"));
//=== VK_EXT_private_data ===
vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT(vkGetDeviceProcAddr(device, "vkCreatePrivateDataSlotEXT"));
if(!vkCreatePrivateDataSlot)
vkCreatePrivateDataSlot = vkCreatePrivateDataSlotEXT;
vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT(vkGetDeviceProcAddr(device, "vkDestroyPrivateDataSlotEXT"));
if(!vkDestroyPrivateDataSlot)
vkDestroyPrivateDataSlot = vkDestroyPrivateDataSlotEXT;
vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT(vkGetDeviceProcAddr(device, "vkSetPrivateDataEXT"));
if(!vkSetPrivateData)
vkSetPrivateData = vkSetPrivateDataEXT;
vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT(vkGetDeviceProcAddr(device, "vkGetPrivateDataEXT"));
if(!vkGetPrivateData)
vkGetPrivateData = vkGetPrivateDataEXT;
//=== VK_EXT_sample_locations ===
vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT(vkGetDeviceProcAddr(device, "vkCmdSetSampleLocationsEXT"));
//=== VK_EXT_transform_feedback ===
vkCmdBindTransformFeedbackBuffersEXT =
PFN_vkCmdBindTransformFeedbackBuffersEXT(vkGetDeviceProcAddr(device, "vkCmdBindTransformFeedbackBuffersEXT"));
vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT(vkGetDeviceProcAddr(device, "vkCmdBeginTransformFeedbackEXT"));
vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT(vkGetDeviceProcAddr(device, "vkCmdEndTransformFeedbackEXT"));
vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT(vkGetDeviceProcAddr(device, "vkCmdBeginQueryIndexedEXT"));
vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT(vkGetDeviceProcAddr(device, "vkCmdEndQueryIndexedEXT"));
vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT(vkGetDeviceProcAddr(device, "vkCmdDrawIndirectByteCountEXT"));
//=== VK_EXT_validation_cache ===
vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT(vkGetDeviceProcAddr(device, "vkCreateValidationCacheEXT"));
vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT(vkGetDeviceProcAddr(device, "vkDestroyValidationCacheEXT"));
vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT(vkGetDeviceProcAddr(device, "vkMergeValidationCachesEXT"));
vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT(vkGetDeviceProcAddr(device, "vkGetValidationCacheDataEXT"));
//=== VK_EXT_vertex_input_dynamic_state ===
vkCmdSetVertexInputEXT = PFN_vkCmdSetVertexInputEXT(vkGetDeviceProcAddr(device, "vkCmdSetVertexInputEXT"));
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_buffer_collection ===
vkCreateBufferCollectionFUCHSIA = PFN_vkCreateBufferCollectionFUCHSIA(vkGetDeviceProcAddr(device, "vkCreateBufferCollectionFUCHSIA"));
vkSetBufferCollectionImageConstraintsFUCHSIA =
PFN_vkSetBufferCollectionImageConstraintsFUCHSIA(vkGetDeviceProcAddr(device, "vkSetBufferCollectionImageConstraintsFUCHSIA"));
vkSetBufferCollectionBufferConstraintsFUCHSIA =
PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA(vkGetDeviceProcAddr(device, "vkSetBufferCollectionBufferConstraintsFUCHSIA"));
vkDestroyBufferCollectionFUCHSIA = PFN_vkDestroyBufferCollectionFUCHSIA(vkGetDeviceProcAddr(device, "vkDestroyBufferCollectionFUCHSIA"));
vkGetBufferCollectionPropertiesFUCHSIA =
PFN_vkGetBufferCollectionPropertiesFUCHSIA(vkGetDeviceProcAddr(device, "vkGetBufferCollectionPropertiesFUCHSIA"));
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_external_memory ===
vkGetMemoryZirconHandleFUCHSIA = PFN_vkGetMemoryZirconHandleFUCHSIA(vkGetDeviceProcAddr(device, "vkGetMemoryZirconHandleFUCHSIA"));
vkGetMemoryZirconHandlePropertiesFUCHSIA =
PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA(vkGetDeviceProcAddr(device, "vkGetMemoryZirconHandlePropertiesFUCHSIA"));
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_external_semaphore ===
vkImportSemaphoreZirconHandleFUCHSIA =
PFN_vkImportSemaphoreZirconHandleFUCHSIA(vkGetDeviceProcAddr(device, "vkImportSemaphoreZirconHandleFUCHSIA"));
vkGetSemaphoreZirconHandleFUCHSIA = PFN_vkGetSemaphoreZirconHandleFUCHSIA(vkGetDeviceProcAddr(device, "vkGetSemaphoreZirconHandleFUCHSIA"));
# endif /*VK_USE_PLATFORM_FUCHSIA*/
//=== VK_GOOGLE_display_timing ===
vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE(vkGetDeviceProcAddr(device, "vkGetRefreshCycleDurationGOOGLE"));
vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE(vkGetDeviceProcAddr(device, "vkGetPastPresentationTimingGOOGLE"));
//=== VK_HUAWEI_invocation_mask ===
vkCmdBindInvocationMaskHUAWEI = PFN_vkCmdBindInvocationMaskHUAWEI(vkGetDeviceProcAddr(device, "vkCmdBindInvocationMaskHUAWEI"));
//=== VK_HUAWEI_subpass_shading ===
vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI =
PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(vkGetDeviceProcAddr(device, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"));
vkCmdSubpassShadingHUAWEI = PFN_vkCmdSubpassShadingHUAWEI(vkGetDeviceProcAddr(device, "vkCmdSubpassShadingHUAWEI"));
//=== VK_INTEL_performance_query ===
vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL(vkGetDeviceProcAddr(device, "vkInitializePerformanceApiINTEL"));
vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL(vkGetDeviceProcAddr(device, "vkUninitializePerformanceApiINTEL"));
vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL(vkGetDeviceProcAddr(device, "vkCmdSetPerformanceMarkerINTEL"));
vkCmdSetPerformanceStreamMarkerINTEL =
PFN_vkCmdSetPerformanceStreamMarkerINTEL(vkGetDeviceProcAddr(device, "vkCmdSetPerformanceStreamMarkerINTEL"));
vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL(vkGetDeviceProcAddr(device, "vkCmdSetPerformanceOverrideINTEL"));
vkAcquirePerformanceConfigurationINTEL =
PFN_vkAcquirePerformanceConfigurationINTEL(vkGetDeviceProcAddr(device, "vkAcquirePerformanceConfigurationINTEL"));
vkReleasePerformanceConfigurationINTEL =
PFN_vkReleasePerformanceConfigurationINTEL(vkGetDeviceProcAddr(device, "vkReleasePerformanceConfigurationINTEL"));
vkQueueSetPerformanceConfigurationINTEL =
PFN_vkQueueSetPerformanceConfigurationINTEL(vkGetDeviceProcAddr(device, "vkQueueSetPerformanceConfigurationINTEL"));
vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL(vkGetDeviceProcAddr(device, "vkGetPerformanceParameterINTEL"));
//=== VK_KHR_acceleration_structure ===
vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR(vkGetDeviceProcAddr(device, "vkCreateAccelerationStructureKHR"));
vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR(vkGetDeviceProcAddr(device, "vkDestroyAccelerationStructureKHR"));
vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR(vkGetDeviceProcAddr(device, "vkCmdBuildAccelerationStructuresKHR"));
vkCmdBuildAccelerationStructuresIndirectKHR =
PFN_vkCmdBuildAccelerationStructuresIndirectKHR(vkGetDeviceProcAddr(device, "vkCmdBuildAccelerationStructuresIndirectKHR"));
vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR(vkGetDeviceProcAddr(device, "vkBuildAccelerationStructuresKHR"));
vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR(vkGetDeviceProcAddr(device, "vkCopyAccelerationStructureKHR"));
vkCopyAccelerationStructureToMemoryKHR =
PFN_vkCopyAccelerationStructureToMemoryKHR(vkGetDeviceProcAddr(device, "vkCopyAccelerationStructureToMemoryKHR"));
vkCopyMemoryToAccelerationStructureKHR =
PFN_vkCopyMemoryToAccelerationStructureKHR(vkGetDeviceProcAddr(device, "vkCopyMemoryToAccelerationStructureKHR"));
vkWriteAccelerationStructuresPropertiesKHR =
PFN_vkWriteAccelerationStructuresPropertiesKHR(vkGetDeviceProcAddr(device, "vkWriteAccelerationStructuresPropertiesKHR"));
vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR(vkGetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureKHR"));
vkCmdCopyAccelerationStructureToMemoryKHR =
PFN_vkCmdCopyAccelerationStructureToMemoryKHR(vkGetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureToMemoryKHR"));
vkCmdCopyMemoryToAccelerationStructureKHR =
PFN_vkCmdCopyMemoryToAccelerationStructureKHR(vkGetDeviceProcAddr(device, "vkCmdCopyMemoryToAccelerationStructureKHR"));
vkGetAccelerationStructureDeviceAddressKHR =
PFN_vkGetAccelerationStructureDeviceAddressKHR(vkGetDeviceProcAddr(device, "vkGetAccelerationStructureDeviceAddressKHR"));
vkCmdWriteAccelerationStructuresPropertiesKHR =
PFN_vkCmdWriteAccelerationStructuresPropertiesKHR(vkGetDeviceProcAddr(device, "vkCmdWriteAccelerationStructuresPropertiesKHR"));
vkGetDeviceAccelerationStructureCompatibilityKHR =
PFN_vkGetDeviceAccelerationStructureCompatibilityKHR(vkGetDeviceProcAddr(device, "vkGetDeviceAccelerationStructureCompatibilityKHR"));
vkGetAccelerationStructureBuildSizesKHR =
PFN_vkGetAccelerationStructureBuildSizesKHR(vkGetDeviceProcAddr(device, "vkGetAccelerationStructureBuildSizesKHR"));
//=== VK_KHR_bind_memory2 ===
vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR(vkGetDeviceProcAddr(device, "vkBindBufferMemory2KHR"));
if(!vkBindBufferMemory2)
vkBindBufferMemory2 = vkBindBufferMemory2KHR;
vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR(vkGetDeviceProcAddr(device, "vkBindImageMemory2KHR"));
if(!vkBindImageMemory2)
vkBindImageMemory2 = vkBindImageMemory2KHR;
//=== VK_KHR_buffer_device_address ===
vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR(vkGetDeviceProcAddr(device, "vkGetBufferDeviceAddressKHR"));
if(!vkGetBufferDeviceAddress)
vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR;
vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR(vkGetDeviceProcAddr(device, "vkGetBufferOpaqueCaptureAddressKHR"));
if(!vkGetBufferOpaqueCaptureAddress)
vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR;
vkGetDeviceMemoryOpaqueCaptureAddressKHR =
PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR(vkGetDeviceProcAddr(device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"));
if(!vkGetDeviceMemoryOpaqueCaptureAddress)
vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR;
//=== VK_KHR_copy_commands2 ===
vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR(vkGetDeviceProcAddr(device, "vkCmdCopyBuffer2KHR"));
if(!vkCmdCopyBuffer2)
vkCmdCopyBuffer2 = vkCmdCopyBuffer2KHR;
vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR(vkGetDeviceProcAddr(device, "vkCmdCopyImage2KHR"));
if(!vkCmdCopyImage2)
vkCmdCopyImage2 = vkCmdCopyImage2KHR;
vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR(vkGetDeviceProcAddr(device, "vkCmdCopyBufferToImage2KHR"));
if(!vkCmdCopyBufferToImage2)
vkCmdCopyBufferToImage2 = vkCmdCopyBufferToImage2KHR;
vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR(vkGetDeviceProcAddr(device, "vkCmdCopyImageToBuffer2KHR"));
if(!vkCmdCopyImageToBuffer2)
vkCmdCopyImageToBuffer2 = vkCmdCopyImageToBuffer2KHR;
vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR(vkGetDeviceProcAddr(device, "vkCmdBlitImage2KHR"));
if(!vkCmdBlitImage2)
vkCmdBlitImage2 = vkCmdBlitImage2KHR;
vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR(vkGetDeviceProcAddr(device, "vkCmdResolveImage2KHR"));
if(!vkCmdResolveImage2)
vkCmdResolveImage2 = vkCmdResolveImage2KHR;
//=== VK_KHR_create_renderpass2 ===
vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR(vkGetDeviceProcAddr(device, "vkCreateRenderPass2KHR"));
if(!vkCreateRenderPass2)
vkCreateRenderPass2 = vkCreateRenderPass2KHR;
vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR(vkGetDeviceProcAddr(device, "vkCmdBeginRenderPass2KHR"));
if(!vkCmdBeginRenderPass2)
vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR;
vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR(vkGetDeviceProcAddr(device, "vkCmdNextSubpass2KHR"));
if(!vkCmdNextSubpass2)
vkCmdNextSubpass2 = vkCmdNextSubpass2KHR;
vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR(vkGetDeviceProcAddr(device, "vkCmdEndRenderPass2KHR"));
if(!vkCmdEndRenderPass2)
vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR;
//=== VK_KHR_deferred_host_operations ===
vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR(vkGetDeviceProcAddr(device, "vkCreateDeferredOperationKHR"));
vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR(vkGetDeviceProcAddr(device, "vkDestroyDeferredOperationKHR"));
vkGetDeferredOperationMaxConcurrencyKHR =
PFN_vkGetDeferredOperationMaxConcurrencyKHR(vkGetDeviceProcAddr(device, "vkGetDeferredOperationMaxConcurrencyKHR"));
vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR(vkGetDeviceProcAddr(device, "vkGetDeferredOperationResultKHR"));
vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR(vkGetDeviceProcAddr(device, "vkDeferredOperationJoinKHR"));
//=== VK_KHR_descriptor_update_template ===
vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR(vkGetDeviceProcAddr(device, "vkCreateDescriptorUpdateTemplateKHR"));
if(!vkCreateDescriptorUpdateTemplate)
vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR;
vkDestroyDescriptorUpdateTemplateKHR =
PFN_vkDestroyDescriptorUpdateTemplateKHR(vkGetDeviceProcAddr(device, "vkDestroyDescriptorUpdateTemplateKHR"));
if(!vkDestroyDescriptorUpdateTemplate)
vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR;
vkUpdateDescriptorSetWithTemplateKHR =
PFN_vkUpdateDescriptorSetWithTemplateKHR(vkGetDeviceProcAddr(device, "vkUpdateDescriptorSetWithTemplateKHR"));
if(!vkUpdateDescriptorSetWithTemplate)
vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR;
vkCmdPushDescriptorSetWithTemplateKHR =
PFN_vkCmdPushDescriptorSetWithTemplateKHR(vkGetDeviceProcAddr(device, "vkCmdPushDescriptorSetWithTemplateKHR"));
//=== VK_KHR_device_group ===
vkGetDeviceGroupPeerMemoryFeaturesKHR =
PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR(vkGetDeviceProcAddr(device, "vkGetDeviceGroupPeerMemoryFeaturesKHR"));
if(!vkGetDeviceGroupPeerMemoryFeatures)
vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR;
vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR(vkGetDeviceProcAddr(device, "vkCmdSetDeviceMaskKHR"));
if(!vkCmdSetDeviceMask)
vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR;
vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR(vkGetDeviceProcAddr(device, "vkCmdDispatchBaseKHR"));
if(!vkCmdDispatchBase)
vkCmdDispatchBase = vkCmdDispatchBaseKHR;
vkGetDeviceGroupPresentCapabilitiesKHR =
PFN_vkGetDeviceGroupPresentCapabilitiesKHR(vkGetDeviceProcAddr(device, "vkGetDeviceGroupPresentCapabilitiesKHR"));
vkGetDeviceGroupSurfacePresentModesKHR =
PFN_vkGetDeviceGroupSurfacePresentModesKHR(vkGetDeviceProcAddr(device, "vkGetDeviceGroupSurfacePresentModesKHR"));
vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR(vkGetDeviceProcAddr(device, "vkAcquireNextImage2KHR"));
//=== VK_KHR_display_swapchain ===
vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR(vkGetDeviceProcAddr(device, "vkCreateSharedSwapchainsKHR"));
//=== VK_KHR_draw_indirect_count ===
vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR(vkGetDeviceProcAddr(device, "vkCmdDrawIndirectCountKHR"));
if(!vkCmdDrawIndirectCount)
vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR;
vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR(vkGetDeviceProcAddr(device, "vkCmdDrawIndexedIndirectCountKHR"));
if(!vkCmdDrawIndexedIndirectCount)
vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR;
//=== VK_KHR_dynamic_rendering ===
vkCmdBeginRenderingKHR = PFN_vkCmdBeginRenderingKHR(vkGetDeviceProcAddr(device, "vkCmdBeginRenderingKHR"));
if(!vkCmdBeginRendering)
vkCmdBeginRendering = vkCmdBeginRenderingKHR;
vkCmdEndRenderingKHR = PFN_vkCmdEndRenderingKHR(vkGetDeviceProcAddr(device, "vkCmdEndRenderingKHR"));
if(!vkCmdEndRendering)
vkCmdEndRendering = vkCmdEndRenderingKHR;
//=== VK_KHR_external_fence_fd ===
vkImportFenceFdKHR = PFN_vkImportFenceFdKHR(vkGetDeviceProcAddr(device, "vkImportFenceFdKHR"));
vkGetFenceFdKHR = PFN_vkGetFenceFdKHR(vkGetDeviceProcAddr(device, "vkGetFenceFdKHR"));
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_fence_win32 ===
vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR(vkGetDeviceProcAddr(device, "vkImportFenceWin32HandleKHR"));
vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR(vkGetDeviceProcAddr(device, "vkGetFenceWin32HandleKHR"));
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_memory_fd ===
vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR(vkGetDeviceProcAddr(device, "vkGetMemoryFdKHR"));
vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR(vkGetDeviceProcAddr(device, "vkGetMemoryFdPropertiesKHR"));
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_memory_win32 ===
vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR(vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandleKHR"));
vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR(vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandlePropertiesKHR"));
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_semaphore_fd ===
vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR(vkGetDeviceProcAddr(device, "vkImportSemaphoreFdKHR"));
vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR(vkGetDeviceProcAddr(device, "vkGetSemaphoreFdKHR"));
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_semaphore_win32 ===
vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR(vkGetDeviceProcAddr(device, "vkImportSemaphoreWin32HandleKHR"));
vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR(vkGetDeviceProcAddr(device, "vkGetSemaphoreWin32HandleKHR"));
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_fragment_shading_rate ===
vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR(vkGetDeviceProcAddr(device, "vkCmdSetFragmentShadingRateKHR"));
//=== VK_KHR_get_memory_requirements2 ===
vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR(vkGetDeviceProcAddr(device, "vkGetImageMemoryRequirements2KHR"));
if(!vkGetImageMemoryRequirements2)
vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR;
vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR(vkGetDeviceProcAddr(device, "vkGetBufferMemoryRequirements2KHR"));
if(!vkGetBufferMemoryRequirements2)
vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR;
vkGetImageSparseMemoryRequirements2KHR =
PFN_vkGetImageSparseMemoryRequirements2KHR(vkGetDeviceProcAddr(device, "vkGetImageSparseMemoryRequirements2KHR"));
if(!vkGetImageSparseMemoryRequirements2)
vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR;
//=== VK_KHR_maintenance1 ===
vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR(vkGetDeviceProcAddr(device, "vkTrimCommandPoolKHR"));
if(!vkTrimCommandPool)
vkTrimCommandPool = vkTrimCommandPoolKHR;
//=== VK_KHR_maintenance3 ===
vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR(vkGetDeviceProcAddr(device, "vkGetDescriptorSetLayoutSupportKHR"));
if(!vkGetDescriptorSetLayoutSupport)
vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR;
//=== VK_KHR_maintenance4 ===
vkGetDeviceBufferMemoryRequirementsKHR =
PFN_vkGetDeviceBufferMemoryRequirementsKHR(vkGetDeviceProcAddr(device, "vkGetDeviceBufferMemoryRequirementsKHR"));
if(!vkGetDeviceBufferMemoryRequirements)
vkGetDeviceBufferMemoryRequirements = vkGetDeviceBufferMemoryRequirementsKHR;
vkGetDeviceImageMemoryRequirementsKHR =
PFN_vkGetDeviceImageMemoryRequirementsKHR(vkGetDeviceProcAddr(device, "vkGetDeviceImageMemoryRequirementsKHR"));
if(!vkGetDeviceImageMemoryRequirements)
vkGetDeviceImageMemoryRequirements = vkGetDeviceImageMemoryRequirementsKHR;
vkGetDeviceImageSparseMemoryRequirementsKHR =
PFN_vkGetDeviceImageSparseMemoryRequirementsKHR(vkGetDeviceProcAddr(device, "vkGetDeviceImageSparseMemoryRequirementsKHR"));
if(!vkGetDeviceImageSparseMemoryRequirements)
vkGetDeviceImageSparseMemoryRequirements = vkGetDeviceImageSparseMemoryRequirementsKHR;
//=== VK_KHR_performance_query ===
vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR(vkGetDeviceProcAddr(device, "vkAcquireProfilingLockKHR"));
vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR(vkGetDeviceProcAddr(device, "vkReleaseProfilingLockKHR"));
//=== VK_KHR_pipeline_executable_properties ===
vkGetPipelineExecutablePropertiesKHR =
PFN_vkGetPipelineExecutablePropertiesKHR(vkGetDeviceProcAddr(device, "vkGetPipelineExecutablePropertiesKHR"));
vkGetPipelineExecutableStatisticsKHR =
PFN_vkGetPipelineExecutableStatisticsKHR(vkGetDeviceProcAddr(device, "vkGetPipelineExecutableStatisticsKHR"));
vkGetPipelineExecutableInternalRepresentationsKHR =
PFN_vkGetPipelineExecutableInternalRepresentationsKHR(vkGetDeviceProcAddr(device, "vkGetPipelineExecutableInternalRepresentationsKHR"));
//=== VK_KHR_present_wait ===
vkWaitForPresentKHR = PFN_vkWaitForPresentKHR(vkGetDeviceProcAddr(device, "vkWaitForPresentKHR"));
//=== VK_KHR_push_descriptor ===
vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR(vkGetDeviceProcAddr(device, "vkCmdPushDescriptorSetKHR"));
//=== VK_KHR_ray_tracing_pipeline ===
vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR(vkGetDeviceProcAddr(device, "vkCmdTraceRaysKHR"));
vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR(vkGetDeviceProcAddr(device, "vkCreateRayTracingPipelinesKHR"));
vkGetRayTracingShaderGroupHandlesKHR =
PFN_vkGetRayTracingShaderGroupHandlesKHR(vkGetDeviceProcAddr(device, "vkGetRayTracingShaderGroupHandlesKHR"));
vkGetRayTracingCaptureReplayShaderGroupHandlesKHR =
PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(vkGetDeviceProcAddr(device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"));
vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR(vkGetDeviceProcAddr(device, "vkCmdTraceRaysIndirectKHR"));
vkGetRayTracingShaderGroupStackSizeKHR =
PFN_vkGetRayTracingShaderGroupStackSizeKHR(vkGetDeviceProcAddr(device, "vkGetRayTracingShaderGroupStackSizeKHR"));
vkCmdSetRayTracingPipelineStackSizeKHR =
PFN_vkCmdSetRayTracingPipelineStackSizeKHR(vkGetDeviceProcAddr(device, "vkCmdSetRayTracingPipelineStackSizeKHR"));
//=== VK_KHR_sampler_ycbcr_conversion ===
vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR(vkGetDeviceProcAddr(device, "vkCreateSamplerYcbcrConversionKHR"));
if(!vkCreateSamplerYcbcrConversion)
vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR;
vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR(vkGetDeviceProcAddr(device, "vkDestroySamplerYcbcrConversionKHR"));
if(!vkDestroySamplerYcbcrConversion)
vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR;
//=== VK_KHR_shared_presentable_image ===
vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR(vkGetDeviceProcAddr(device, "vkGetSwapchainStatusKHR"));
//=== VK_KHR_swapchain ===
vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR(vkGetDeviceProcAddr(device, "vkCreateSwapchainKHR"));
vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR(vkGetDeviceProcAddr(device, "vkDestroySwapchainKHR"));
vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR(vkGetDeviceProcAddr(device, "vkGetSwapchainImagesKHR"));
vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR(vkGetDeviceProcAddr(device, "vkAcquireNextImageKHR"));
vkQueuePresentKHR = PFN_vkQueuePresentKHR(vkGetDeviceProcAddr(device, "vkQueuePresentKHR"));
//=== VK_KHR_synchronization2 ===
vkCmdSetEvent2KHR = PFN_vkCmdSetEvent2KHR(vkGetDeviceProcAddr(device, "vkCmdSetEvent2KHR"));
if(!vkCmdSetEvent2)
vkCmdSetEvent2 = vkCmdSetEvent2KHR;
vkCmdResetEvent2KHR = PFN_vkCmdResetEvent2KHR(vkGetDeviceProcAddr(device, "vkCmdResetEvent2KHR"));
if(!vkCmdResetEvent2)
vkCmdResetEvent2 = vkCmdResetEvent2KHR;
vkCmdWaitEvents2KHR = PFN_vkCmdWaitEvents2KHR(vkGetDeviceProcAddr(device, "vkCmdWaitEvents2KHR"));
if(!vkCmdWaitEvents2)
vkCmdWaitEvents2 = vkCmdWaitEvents2KHR;
vkCmdPipelineBarrier2KHR = PFN_vkCmdPipelineBarrier2KHR(vkGetDeviceProcAddr(device, "vkCmdPipelineBarrier2KHR"));
if(!vkCmdPipelineBarrier2)
vkCmdPipelineBarrier2 = vkCmdPipelineBarrier2KHR;
vkCmdWriteTimestamp2KHR = PFN_vkCmdWriteTimestamp2KHR(vkGetDeviceProcAddr(device, "vkCmdWriteTimestamp2KHR"));
if(!vkCmdWriteTimestamp2)
vkCmdWriteTimestamp2 = vkCmdWriteTimestamp2KHR;
vkQueueSubmit2KHR = PFN_vkQueueSubmit2KHR(vkGetDeviceProcAddr(device, "vkQueueSubmit2KHR"));
if(!vkQueueSubmit2)
vkQueueSubmit2 = vkQueueSubmit2KHR;
vkCmdWriteBufferMarker2AMD = PFN_vkCmdWriteBufferMarker2AMD(vkGetDeviceProcAddr(device, "vkCmdWriteBufferMarker2AMD"));
vkGetQueueCheckpointData2NV = PFN_vkGetQueueCheckpointData2NV(vkGetDeviceProcAddr(device, "vkGetQueueCheckpointData2NV"));
//=== VK_KHR_timeline_semaphore ===
vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR(vkGetDeviceProcAddr(device, "vkGetSemaphoreCounterValueKHR"));
if(!vkGetSemaphoreCounterValue)
vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR;
vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR(vkGetDeviceProcAddr(device, "vkWaitSemaphoresKHR"));
if(!vkWaitSemaphores)
vkWaitSemaphores = vkWaitSemaphoresKHR;
vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR(vkGetDeviceProcAddr(device, "vkSignalSemaphoreKHR"));
if(!vkSignalSemaphore)
vkSignalSemaphore = vkSignalSemaphoreKHR;
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_decode_queue ===
vkCmdDecodeVideoKHR = PFN_vkCmdDecodeVideoKHR(vkGetDeviceProcAddr(device, "vkCmdDecodeVideoKHR"));
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_encode_queue ===
vkCmdEncodeVideoKHR = PFN_vkCmdEncodeVideoKHR(vkGetDeviceProcAddr(device, "vkCmdEncodeVideoKHR"));
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
vkCreateVideoSessionKHR = PFN_vkCreateVideoSessionKHR(vkGetDeviceProcAddr(device, "vkCreateVideoSessionKHR"));
vkDestroyVideoSessionKHR = PFN_vkDestroyVideoSessionKHR(vkGetDeviceProcAddr(device, "vkDestroyVideoSessionKHR"));
vkGetVideoSessionMemoryRequirementsKHR =
PFN_vkGetVideoSessionMemoryRequirementsKHR(vkGetDeviceProcAddr(device, "vkGetVideoSessionMemoryRequirementsKHR"));
vkBindVideoSessionMemoryKHR = PFN_vkBindVideoSessionMemoryKHR(vkGetDeviceProcAddr(device, "vkBindVideoSessionMemoryKHR"));
vkCreateVideoSessionParametersKHR = PFN_vkCreateVideoSessionParametersKHR(vkGetDeviceProcAddr(device, "vkCreateVideoSessionParametersKHR"));
vkUpdateVideoSessionParametersKHR = PFN_vkUpdateVideoSessionParametersKHR(vkGetDeviceProcAddr(device, "vkUpdateVideoSessionParametersKHR"));
vkDestroyVideoSessionParametersKHR = PFN_vkDestroyVideoSessionParametersKHR(vkGetDeviceProcAddr(device, "vkDestroyVideoSessionParametersKHR"));
vkCmdBeginVideoCodingKHR = PFN_vkCmdBeginVideoCodingKHR(vkGetDeviceProcAddr(device, "vkCmdBeginVideoCodingKHR"));
vkCmdEndVideoCodingKHR = PFN_vkCmdEndVideoCodingKHR(vkGetDeviceProcAddr(device, "vkCmdEndVideoCodingKHR"));
vkCmdControlVideoCodingKHR = PFN_vkCmdControlVideoCodingKHR(vkGetDeviceProcAddr(device, "vkCmdControlVideoCodingKHR"));
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NVX_binary_import ===
vkCreateCuModuleNVX = PFN_vkCreateCuModuleNVX(vkGetDeviceProcAddr(device, "vkCreateCuModuleNVX"));
vkCreateCuFunctionNVX = PFN_vkCreateCuFunctionNVX(vkGetDeviceProcAddr(device, "vkCreateCuFunctionNVX"));
vkDestroyCuModuleNVX = PFN_vkDestroyCuModuleNVX(vkGetDeviceProcAddr(device, "vkDestroyCuModuleNVX"));
vkDestroyCuFunctionNVX = PFN_vkDestroyCuFunctionNVX(vkGetDeviceProcAddr(device, "vkDestroyCuFunctionNVX"));
vkCmdCuLaunchKernelNVX = PFN_vkCmdCuLaunchKernelNVX(vkGetDeviceProcAddr(device, "vkCmdCuLaunchKernelNVX"));
//=== VK_NVX_image_view_handle ===
vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX(vkGetDeviceProcAddr(device, "vkGetImageViewHandleNVX"));
vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX(vkGetDeviceProcAddr(device, "vkGetImageViewAddressNVX"));
//=== VK_NV_clip_space_w_scaling ===
vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV(vkGetDeviceProcAddr(device, "vkCmdSetViewportWScalingNV"));
//=== VK_NV_device_diagnostic_checkpoints ===
vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV(vkGetDeviceProcAddr(device, "vkCmdSetCheckpointNV"));
vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV(vkGetDeviceProcAddr(device, "vkGetQueueCheckpointDataNV"));
//=== VK_NV_device_generated_commands ===
vkGetGeneratedCommandsMemoryRequirementsNV =
PFN_vkGetGeneratedCommandsMemoryRequirementsNV(vkGetDeviceProcAddr(device, "vkGetGeneratedCommandsMemoryRequirementsNV"));
vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV(vkGetDeviceProcAddr(device, "vkCmdPreprocessGeneratedCommandsNV"));
vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV(vkGetDeviceProcAddr(device, "vkCmdExecuteGeneratedCommandsNV"));
vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV(vkGetDeviceProcAddr(device, "vkCmdBindPipelineShaderGroupNV"));
vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV(vkGetDeviceProcAddr(device, "vkCreateIndirectCommandsLayoutNV"));
vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV(vkGetDeviceProcAddr(device, "vkDestroyIndirectCommandsLayoutNV"));
//=== VK_NV_external_memory_rdma ===
vkGetMemoryRemoteAddressNV = PFN_vkGetMemoryRemoteAddressNV(vkGetDeviceProcAddr(device, "vkGetMemoryRemoteAddressNV"));
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_external_memory_win32 ===
vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV(vkGetDeviceProcAddr(device, "vkGetMemoryWin32HandleNV"));
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_NV_fragment_shading_rate_enums ===
vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV(vkGetDeviceProcAddr(device, "vkCmdSetFragmentShadingRateEnumNV"));
//=== VK_NV_mesh_shader ===
vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV(vkGetDeviceProcAddr(device, "vkCmdDrawMeshTasksNV"));
vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV(vkGetDeviceProcAddr(device, "vkCmdDrawMeshTasksIndirectNV"));
vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV(vkGetDeviceProcAddr(device, "vkCmdDrawMeshTasksIndirectCountNV"));
//=== VK_NV_ray_tracing ===
vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV(vkGetDeviceProcAddr(device, "vkCreateAccelerationStructureNV"));
vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV(vkGetDeviceProcAddr(device, "vkDestroyAccelerationStructureNV"));
vkGetAccelerationStructureMemoryRequirementsNV =
PFN_vkGetAccelerationStructureMemoryRequirementsNV(vkGetDeviceProcAddr(device, "vkGetAccelerationStructureMemoryRequirementsNV"));
vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV(vkGetDeviceProcAddr(device, "vkBindAccelerationStructureMemoryNV"));
vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV(vkGetDeviceProcAddr(device, "vkCmdBuildAccelerationStructureNV"));
vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV(vkGetDeviceProcAddr(device, "vkCmdCopyAccelerationStructureNV"));
vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV(vkGetDeviceProcAddr(device, "vkCmdTraceRaysNV"));
vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV(vkGetDeviceProcAddr(device, "vkCreateRayTracingPipelinesNV"));
vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV(vkGetDeviceProcAddr(device, "vkGetRayTracingShaderGroupHandlesNV"));
if(!vkGetRayTracingShaderGroupHandlesKHR)
vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV;
vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV(vkGetDeviceProcAddr(device, "vkGetAccelerationStructureHandleNV"));
vkCmdWriteAccelerationStructuresPropertiesNV =
PFN_vkCmdWriteAccelerationStructuresPropertiesNV(vkGetDeviceProcAddr(device, "vkCmdWriteAccelerationStructuresPropertiesNV"));
vkCompileDeferredNV = PFN_vkCompileDeferredNV(vkGetDeviceProcAddr(device, "vkCompileDeferredNV"));
//=== VK_NV_scissor_exclusive ===
vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV(vkGetDeviceProcAddr(device, "vkCmdSetExclusiveScissorNV"));
//=== VK_NV_shading_rate_image ===
vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV(vkGetDeviceProcAddr(device, "vkCmdBindShadingRateImageNV"));
vkCmdSetViewportShadingRatePaletteNV =
PFN_vkCmdSetViewportShadingRatePaletteNV(vkGetDeviceProcAddr(device, "vkCmdSetViewportShadingRatePaletteNV"));
vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV(vkGetDeviceProcAddr(device, "vkCmdSetCoarseSampleOrderNV"));
//=== VK_VALVE_descriptor_set_host_mapping ===
vkGetDescriptorSetLayoutHostMappingInfoVALVE =
PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE(vkGetDeviceProcAddr(device, "vkGetDescriptorSetLayoutHostMappingInfoVALVE"));
vkGetDescriptorSetHostMappingVALVE = PFN_vkGetDescriptorSetHostMappingVALVE(vkGetDeviceProcAddr(device, "vkGetDescriptorSetHostMappingVALVE"));
}
public:
//=== VK_VERSION_1_0 ===
PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0;
PFN_vkDestroyDevice vkDestroyDevice = 0;
PFN_vkGetDeviceQueue vkGetDeviceQueue = 0;
PFN_vkQueueSubmit vkQueueSubmit = 0;
PFN_vkQueueWaitIdle vkQueueWaitIdle = 0;
PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0;
PFN_vkAllocateMemory vkAllocateMemory = 0;
PFN_vkFreeMemory vkFreeMemory = 0;
PFN_vkMapMemory vkMapMemory = 0;
PFN_vkUnmapMemory vkUnmapMemory = 0;
PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0;
PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0;
PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0;
PFN_vkBindBufferMemory vkBindBufferMemory = 0;
PFN_vkBindImageMemory vkBindImageMemory = 0;
PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0;
PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0;
PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0;
PFN_vkQueueBindSparse vkQueueBindSparse = 0;
PFN_vkCreateFence vkCreateFence = 0;
PFN_vkDestroyFence vkDestroyFence = 0;
PFN_vkResetFences vkResetFences = 0;
PFN_vkGetFenceStatus vkGetFenceStatus = 0;
PFN_vkWaitForFences vkWaitForFences = 0;
PFN_vkCreateSemaphore vkCreateSemaphore = 0;
PFN_vkDestroySemaphore vkDestroySemaphore = 0;
PFN_vkCreateEvent vkCreateEvent = 0;
PFN_vkDestroyEvent vkDestroyEvent = 0;
PFN_vkGetEventStatus vkGetEventStatus = 0;
PFN_vkSetEvent vkSetEvent = 0;
PFN_vkResetEvent vkResetEvent = 0;
PFN_vkCreateQueryPool vkCreateQueryPool = 0;
PFN_vkDestroyQueryPool vkDestroyQueryPool = 0;
PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0;
PFN_vkCreateBuffer vkCreateBuffer = 0;
PFN_vkDestroyBuffer vkDestroyBuffer = 0;
PFN_vkCreateBufferView vkCreateBufferView = 0;
PFN_vkDestroyBufferView vkDestroyBufferView = 0;
PFN_vkCreateImage vkCreateImage = 0;
PFN_vkDestroyImage vkDestroyImage = 0;
PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0;
PFN_vkCreateImageView vkCreateImageView = 0;
PFN_vkDestroyImageView vkDestroyImageView = 0;
PFN_vkCreateShaderModule vkCreateShaderModule = 0;
PFN_vkDestroyShaderModule vkDestroyShaderModule = 0;
PFN_vkCreatePipelineCache vkCreatePipelineCache = 0;
PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0;
PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0;
PFN_vkMergePipelineCaches vkMergePipelineCaches = 0;
PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0;
PFN_vkCreateComputePipelines vkCreateComputePipelines = 0;
PFN_vkDestroyPipeline vkDestroyPipeline = 0;
PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0;
PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0;
PFN_vkCreateSampler vkCreateSampler = 0;
PFN_vkDestroySampler vkDestroySampler = 0;
PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0;
PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0;
PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0;
PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0;
PFN_vkResetDescriptorPool vkResetDescriptorPool = 0;
PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0;
PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0;
PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0;
PFN_vkCreateFramebuffer vkCreateFramebuffer = 0;
PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0;
PFN_vkCreateRenderPass vkCreateRenderPass = 0;
PFN_vkDestroyRenderPass vkDestroyRenderPass = 0;
PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0;
PFN_vkCreateCommandPool vkCreateCommandPool = 0;
PFN_vkDestroyCommandPool vkDestroyCommandPool = 0;
PFN_vkResetCommandPool vkResetCommandPool = 0;
PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0;
PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0;
PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0;
PFN_vkEndCommandBuffer vkEndCommandBuffer = 0;
PFN_vkResetCommandBuffer vkResetCommandBuffer = 0;
PFN_vkCmdBindPipeline vkCmdBindPipeline = 0;
PFN_vkCmdSetViewport vkCmdSetViewport = 0;
PFN_vkCmdSetScissor vkCmdSetScissor = 0;
PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0;
PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0;
PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0;
PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0;
PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0;
PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0;
PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0;
PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0;
PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0;
PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0;
PFN_vkCmdDraw vkCmdDraw = 0;
PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0;
PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0;
PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0;
PFN_vkCmdDispatch vkCmdDispatch = 0;
PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0;
PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0;
PFN_vkCmdCopyImage vkCmdCopyImage = 0;
PFN_vkCmdBlitImage vkCmdBlitImage = 0;
PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0;
PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0;
PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0;
PFN_vkCmdFillBuffer vkCmdFillBuffer = 0;
PFN_vkCmdClearColorImage vkCmdClearColorImage = 0;
PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0;
PFN_vkCmdClearAttachments vkCmdClearAttachments = 0;
PFN_vkCmdResolveImage vkCmdResolveImage = 0;
PFN_vkCmdSetEvent vkCmdSetEvent = 0;
PFN_vkCmdResetEvent vkCmdResetEvent = 0;
PFN_vkCmdWaitEvents vkCmdWaitEvents = 0;
PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0;
PFN_vkCmdBeginQuery vkCmdBeginQuery = 0;
PFN_vkCmdEndQuery vkCmdEndQuery = 0;
PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0;
PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0;
PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0;
PFN_vkCmdPushConstants vkCmdPushConstants = 0;
PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0;
PFN_vkCmdNextSubpass vkCmdNextSubpass = 0;
PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0;
PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0;
//=== VK_VERSION_1_1 ===
PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0;
PFN_vkBindImageMemory2 vkBindImageMemory2 = 0;
PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0;
PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0;
PFN_vkCmdDispatchBase vkCmdDispatchBase = 0;
PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0;
PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0;
PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0;
PFN_vkTrimCommandPool vkTrimCommandPool = 0;
PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0;
PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0;
PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0;
PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0;
PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0;
PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0;
PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0;
//=== VK_VERSION_1_2 ===
PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0;
PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0;
PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0;
PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0;
PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0;
PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0;
PFN_vkResetQueryPool vkResetQueryPool = 0;
PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0;
PFN_vkWaitSemaphores vkWaitSemaphores = 0;
PFN_vkSignalSemaphore vkSignalSemaphore = 0;
PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0;
PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0;
PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0;
//=== VK_VERSION_1_3 ===
PFN_vkCreatePrivateDataSlot vkCreatePrivateDataSlot = 0;
PFN_vkDestroyPrivateDataSlot vkDestroyPrivateDataSlot = 0;
PFN_vkSetPrivateData vkSetPrivateData = 0;
PFN_vkGetPrivateData vkGetPrivateData = 0;
PFN_vkCmdSetEvent2 vkCmdSetEvent2 = 0;
PFN_vkCmdResetEvent2 vkCmdResetEvent2 = 0;
PFN_vkCmdWaitEvents2 vkCmdWaitEvents2 = 0;
PFN_vkCmdPipelineBarrier2 vkCmdPipelineBarrier2 = 0;
PFN_vkCmdWriteTimestamp2 vkCmdWriteTimestamp2 = 0;
PFN_vkQueueSubmit2 vkQueueSubmit2 = 0;
PFN_vkCmdCopyBuffer2 vkCmdCopyBuffer2 = 0;
PFN_vkCmdCopyImage2 vkCmdCopyImage2 = 0;
PFN_vkCmdCopyBufferToImage2 vkCmdCopyBufferToImage2 = 0;
PFN_vkCmdCopyImageToBuffer2 vkCmdCopyImageToBuffer2 = 0;
PFN_vkCmdBlitImage2 vkCmdBlitImage2 = 0;
PFN_vkCmdResolveImage2 vkCmdResolveImage2 = 0;
PFN_vkCmdBeginRendering vkCmdBeginRendering = 0;
PFN_vkCmdEndRendering vkCmdEndRendering = 0;
PFN_vkCmdSetCullMode vkCmdSetCullMode = 0;
PFN_vkCmdSetFrontFace vkCmdSetFrontFace = 0;
PFN_vkCmdSetPrimitiveTopology vkCmdSetPrimitiveTopology = 0;
PFN_vkCmdSetViewportWithCount vkCmdSetViewportWithCount = 0;
PFN_vkCmdSetScissorWithCount vkCmdSetScissorWithCount = 0;
PFN_vkCmdBindVertexBuffers2 vkCmdBindVertexBuffers2 = 0;
PFN_vkCmdSetDepthTestEnable vkCmdSetDepthTestEnable = 0;
PFN_vkCmdSetDepthWriteEnable vkCmdSetDepthWriteEnable = 0;
PFN_vkCmdSetDepthCompareOp vkCmdSetDepthCompareOp = 0;
PFN_vkCmdSetDepthBoundsTestEnable vkCmdSetDepthBoundsTestEnable = 0;
PFN_vkCmdSetStencilTestEnable vkCmdSetStencilTestEnable = 0;
PFN_vkCmdSetStencilOp vkCmdSetStencilOp = 0;
PFN_vkCmdSetRasterizerDiscardEnable vkCmdSetRasterizerDiscardEnable = 0;
PFN_vkCmdSetDepthBiasEnable vkCmdSetDepthBiasEnable = 0;
PFN_vkCmdSetPrimitiveRestartEnable vkCmdSetPrimitiveRestartEnable = 0;
PFN_vkGetDeviceBufferMemoryRequirements vkGetDeviceBufferMemoryRequirements = 0;
PFN_vkGetDeviceImageMemoryRequirements vkGetDeviceImageMemoryRequirements = 0;
PFN_vkGetDeviceImageSparseMemoryRequirements vkGetDeviceImageSparseMemoryRequirements = 0;
//=== VK_AMD_buffer_marker ===
PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0;
//=== VK_AMD_display_native_hdr ===
PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0;
//=== VK_AMD_draw_indirect_count ===
PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0;
PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0;
//=== VK_AMD_shader_info ===
PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0;
# if defined(VK_USE_PLATFORM_ANDROID_KHR)
//=== VK_ANDROID_external_memory_android_hardware_buffer ===
PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0;
PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0;
# else
PFN_dummy vkGetAndroidHardwareBufferPropertiesANDROID_placeholder = 0;
PFN_dummy vkGetMemoryAndroidHardwareBufferANDROID_placeholder = 0;
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
//=== VK_EXT_buffer_device_address ===
PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0;
//=== VK_EXT_calibrated_timestamps ===
PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0;
//=== VK_EXT_color_write_enable ===
PFN_vkCmdSetColorWriteEnableEXT vkCmdSetColorWriteEnableEXT = 0;
//=== VK_EXT_conditional_rendering ===
PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0;
PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0;
//=== VK_EXT_debug_marker ===
PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0;
PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0;
PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0;
PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0;
PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0;
//=== VK_EXT_debug_utils ===
PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0;
PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0;
PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0;
PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0;
PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0;
PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0;
PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0;
PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0;
//=== VK_EXT_discard_rectangles ===
PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0;
//=== VK_EXT_display_control ===
PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0;
PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0;
PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0;
PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0;
//=== VK_EXT_extended_dynamic_state ===
PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0;
PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0;
PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0;
PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0;
PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0;
PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0;
PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0;
PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0;
PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0;
PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0;
PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0;
PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0;
//=== VK_EXT_extended_dynamic_state2 ===
PFN_vkCmdSetPatchControlPointsEXT vkCmdSetPatchControlPointsEXT = 0;
PFN_vkCmdSetRasterizerDiscardEnableEXT vkCmdSetRasterizerDiscardEnableEXT = 0;
PFN_vkCmdSetDepthBiasEnableEXT vkCmdSetDepthBiasEnableEXT = 0;
PFN_vkCmdSetLogicOpEXT vkCmdSetLogicOpEXT = 0;
PFN_vkCmdSetPrimitiveRestartEnableEXT vkCmdSetPrimitiveRestartEnableEXT = 0;
//=== VK_EXT_external_memory_host ===
PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_EXT_full_screen_exclusive ===
PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0;
PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0;
PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0;
# else
PFN_dummy vkAcquireFullScreenExclusiveModeEXT_placeholder = 0;
PFN_dummy vkReleaseFullScreenExclusiveModeEXT_placeholder = 0;
PFN_dummy vkGetDeviceGroupSurfacePresentModes2EXT_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_hdr_metadata ===
PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0;
//=== VK_EXT_host_query_reset ===
PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0;
//=== VK_EXT_image_drm_format_modifier ===
PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0;
//=== VK_EXT_line_rasterization ===
PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0;
//=== VK_EXT_multi_draw ===
PFN_vkCmdDrawMultiEXT vkCmdDrawMultiEXT = 0;
PFN_vkCmdDrawMultiIndexedEXT vkCmdDrawMultiIndexedEXT = 0;
//=== VK_EXT_pageable_device_local_memory ===
PFN_vkSetDeviceMemoryPriorityEXT vkSetDeviceMemoryPriorityEXT = 0;
//=== VK_EXT_private_data ===
PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0;
PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0;
PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0;
PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0;
//=== VK_EXT_sample_locations ===
PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0;
//=== VK_EXT_transform_feedback ===
PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0;
PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0;
PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0;
PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0;
PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0;
PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0;
//=== VK_EXT_validation_cache ===
PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0;
PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0;
PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0;
PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0;
//=== VK_EXT_vertex_input_dynamic_state ===
PFN_vkCmdSetVertexInputEXT vkCmdSetVertexInputEXT = 0;
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_buffer_collection ===
PFN_vkCreateBufferCollectionFUCHSIA vkCreateBufferCollectionFUCHSIA = 0;
PFN_vkSetBufferCollectionImageConstraintsFUCHSIA vkSetBufferCollectionImageConstraintsFUCHSIA = 0;
PFN_vkSetBufferCollectionBufferConstraintsFUCHSIA vkSetBufferCollectionBufferConstraintsFUCHSIA = 0;
PFN_vkDestroyBufferCollectionFUCHSIA vkDestroyBufferCollectionFUCHSIA = 0;
PFN_vkGetBufferCollectionPropertiesFUCHSIA vkGetBufferCollectionPropertiesFUCHSIA = 0;
# else
PFN_dummy vkCreateBufferCollectionFUCHSIA_placeholder = 0;
PFN_dummy vkSetBufferCollectionImageConstraintsFUCHSIA_placeholder = 0;
PFN_dummy vkSetBufferCollectionBufferConstraintsFUCHSIA_placeholder = 0;
PFN_dummy vkDestroyBufferCollectionFUCHSIA_placeholder = 0;
PFN_dummy vkGetBufferCollectionPropertiesFUCHSIA_placeholder = 0;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_external_memory ===
PFN_vkGetMemoryZirconHandleFUCHSIA vkGetMemoryZirconHandleFUCHSIA = 0;
PFN_vkGetMemoryZirconHandlePropertiesFUCHSIA vkGetMemoryZirconHandlePropertiesFUCHSIA = 0;
# else
PFN_dummy vkGetMemoryZirconHandleFUCHSIA_placeholder = 0;
PFN_dummy vkGetMemoryZirconHandlePropertiesFUCHSIA_placeholder = 0;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_external_semaphore ===
PFN_vkImportSemaphoreZirconHandleFUCHSIA vkImportSemaphoreZirconHandleFUCHSIA = 0;
PFN_vkGetSemaphoreZirconHandleFUCHSIA vkGetSemaphoreZirconHandleFUCHSIA = 0;
# else
PFN_dummy vkImportSemaphoreZirconHandleFUCHSIA_placeholder = 0;
PFN_dummy vkGetSemaphoreZirconHandleFUCHSIA_placeholder = 0;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
//=== VK_GOOGLE_display_timing ===
PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0;
PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0;
//=== VK_HUAWEI_invocation_mask ===
PFN_vkCmdBindInvocationMaskHUAWEI vkCmdBindInvocationMaskHUAWEI = 0;
//=== VK_HUAWEI_subpass_shading ===
PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI = 0;
PFN_vkCmdSubpassShadingHUAWEI vkCmdSubpassShadingHUAWEI = 0;
//=== VK_INTEL_performance_query ===
PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0;
PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0;
PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0;
PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0;
PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0;
PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0;
PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0;
PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0;
PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0;
//=== VK_KHR_acceleration_structure ===
PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0;
PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0;
PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0;
PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0;
PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0;
PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0;
PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0;
PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0;
PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0;
PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0;
PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0;
PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0;
PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0;
PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0;
PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0;
PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0;
//=== VK_KHR_bind_memory2 ===
PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0;
PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0;
//=== VK_KHR_buffer_device_address ===
PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0;
PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0;
PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0;
//=== VK_KHR_copy_commands2 ===
PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0;
PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0;
PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0;
PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0;
PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0;
PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0;
//=== VK_KHR_create_renderpass2 ===
PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0;
PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0;
PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0;
PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0;
//=== VK_KHR_deferred_host_operations ===
PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0;
PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0;
PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0;
PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0;
PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0;
//=== VK_KHR_descriptor_update_template ===
PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0;
PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0;
PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0;
PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0;
//=== VK_KHR_device_group ===
PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0;
PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0;
PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0;
PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0;
PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0;
PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0;
//=== VK_KHR_display_swapchain ===
PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0;
//=== VK_KHR_draw_indirect_count ===
PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0;
PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0;
//=== VK_KHR_dynamic_rendering ===
PFN_vkCmdBeginRenderingKHR vkCmdBeginRenderingKHR = 0;
PFN_vkCmdEndRenderingKHR vkCmdEndRenderingKHR = 0;
//=== VK_KHR_external_fence_fd ===
PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0;
PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_fence_win32 ===
PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0;
PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0;
# else
PFN_dummy vkImportFenceWin32HandleKHR_placeholder = 0;
PFN_dummy vkGetFenceWin32HandleKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_memory_fd ===
PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0;
PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_memory_win32 ===
PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0;
PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0;
# else
PFN_dummy vkGetMemoryWin32HandleKHR_placeholder = 0;
PFN_dummy vkGetMemoryWin32HandlePropertiesKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_semaphore_fd ===
PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0;
PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_semaphore_win32 ===
PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0;
PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0;
# else
PFN_dummy vkImportSemaphoreWin32HandleKHR_placeholder = 0;
PFN_dummy vkGetSemaphoreWin32HandleKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_fragment_shading_rate ===
PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0;
//=== VK_KHR_get_memory_requirements2 ===
PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0;
PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0;
PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0;
//=== VK_KHR_maintenance1 ===
PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0;
//=== VK_KHR_maintenance3 ===
PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0;
//=== VK_KHR_maintenance4 ===
PFN_vkGetDeviceBufferMemoryRequirementsKHR vkGetDeviceBufferMemoryRequirementsKHR = 0;
PFN_vkGetDeviceImageMemoryRequirementsKHR vkGetDeviceImageMemoryRequirementsKHR = 0;
PFN_vkGetDeviceImageSparseMemoryRequirementsKHR vkGetDeviceImageSparseMemoryRequirementsKHR = 0;
//=== VK_KHR_performance_query ===
PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0;
PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0;
//=== VK_KHR_pipeline_executable_properties ===
PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0;
PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0;
PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0;
//=== VK_KHR_present_wait ===
PFN_vkWaitForPresentKHR vkWaitForPresentKHR = 0;
//=== VK_KHR_push_descriptor ===
PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0;
//=== VK_KHR_ray_tracing_pipeline ===
PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0;
PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0;
PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0;
PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0;
PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0;
PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0;
PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0;
//=== VK_KHR_sampler_ycbcr_conversion ===
PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0;
PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0;
//=== VK_KHR_shared_presentable_image ===
PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0;
//=== VK_KHR_swapchain ===
PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0;
PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0;
PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0;
PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0;
PFN_vkQueuePresentKHR vkQueuePresentKHR = 0;
//=== VK_KHR_synchronization2 ===
PFN_vkCmdSetEvent2KHR vkCmdSetEvent2KHR = 0;
PFN_vkCmdResetEvent2KHR vkCmdResetEvent2KHR = 0;
PFN_vkCmdWaitEvents2KHR vkCmdWaitEvents2KHR = 0;
PFN_vkCmdPipelineBarrier2KHR vkCmdPipelineBarrier2KHR = 0;
PFN_vkCmdWriteTimestamp2KHR vkCmdWriteTimestamp2KHR = 0;
PFN_vkQueueSubmit2KHR vkQueueSubmit2KHR = 0;
PFN_vkCmdWriteBufferMarker2AMD vkCmdWriteBufferMarker2AMD = 0;
PFN_vkGetQueueCheckpointData2NV vkGetQueueCheckpointData2NV = 0;
//=== VK_KHR_timeline_semaphore ===
PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0;
PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0;
PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0;
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_decode_queue ===
PFN_vkCmdDecodeVideoKHR vkCmdDecodeVideoKHR = 0;
# else
PFN_dummy vkCmdDecodeVideoKHR_placeholder = 0;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_encode_queue ===
PFN_vkCmdEncodeVideoKHR vkCmdEncodeVideoKHR = 0;
# else
PFN_dummy vkCmdEncodeVideoKHR_placeholder = 0;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
PFN_vkCreateVideoSessionKHR vkCreateVideoSessionKHR = 0;
PFN_vkDestroyVideoSessionKHR vkDestroyVideoSessionKHR = 0;
PFN_vkGetVideoSessionMemoryRequirementsKHR vkGetVideoSessionMemoryRequirementsKHR = 0;
PFN_vkBindVideoSessionMemoryKHR vkBindVideoSessionMemoryKHR = 0;
PFN_vkCreateVideoSessionParametersKHR vkCreateVideoSessionParametersKHR = 0;
PFN_vkUpdateVideoSessionParametersKHR vkUpdateVideoSessionParametersKHR = 0;
PFN_vkDestroyVideoSessionParametersKHR vkDestroyVideoSessionParametersKHR = 0;
PFN_vkCmdBeginVideoCodingKHR vkCmdBeginVideoCodingKHR = 0;
PFN_vkCmdEndVideoCodingKHR vkCmdEndVideoCodingKHR = 0;
PFN_vkCmdControlVideoCodingKHR vkCmdControlVideoCodingKHR = 0;
# else
PFN_dummy vkCreateVideoSessionKHR_placeholder = 0;
PFN_dummy vkDestroyVideoSessionKHR_placeholder = 0;
PFN_dummy vkGetVideoSessionMemoryRequirementsKHR_placeholder = 0;
PFN_dummy vkBindVideoSessionMemoryKHR_placeholder = 0;
PFN_dummy vkCreateVideoSessionParametersKHR_placeholder = 0;
PFN_dummy vkUpdateVideoSessionParametersKHR_placeholder = 0;
PFN_dummy vkDestroyVideoSessionParametersKHR_placeholder = 0;
PFN_dummy vkCmdBeginVideoCodingKHR_placeholder = 0;
PFN_dummy vkCmdEndVideoCodingKHR_placeholder = 0;
PFN_dummy vkCmdControlVideoCodingKHR_placeholder = 0;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NVX_binary_import ===
PFN_vkCreateCuModuleNVX vkCreateCuModuleNVX = 0;
PFN_vkCreateCuFunctionNVX vkCreateCuFunctionNVX = 0;
PFN_vkDestroyCuModuleNVX vkDestroyCuModuleNVX = 0;
PFN_vkDestroyCuFunctionNVX vkDestroyCuFunctionNVX = 0;
PFN_vkCmdCuLaunchKernelNVX vkCmdCuLaunchKernelNVX = 0;
//=== VK_NVX_image_view_handle ===
PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0;
PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0;
//=== VK_NV_clip_space_w_scaling ===
PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0;
//=== VK_NV_device_diagnostic_checkpoints ===
PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0;
PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0;
//=== VK_NV_device_generated_commands ===
PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0;
PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0;
PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0;
PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0;
PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0;
PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0;
//=== VK_NV_external_memory_rdma ===
PFN_vkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNV = 0;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_external_memory_win32 ===
PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0;
# else
PFN_dummy vkGetMemoryWin32HandleNV_placeholder = 0;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_NV_fragment_shading_rate_enums ===
PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0;
//=== VK_NV_mesh_shader ===
PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0;
PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0;
PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0;
//=== VK_NV_ray_tracing ===
PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0;
PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0;
PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0;
PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0;
PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0;
PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0;
PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0;
PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0;
PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0;
PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0;
PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0;
PFN_vkCompileDeferredNV vkCompileDeferredNV = 0;
//=== VK_NV_scissor_exclusive ===
PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0;
//=== VK_NV_shading_rate_image ===
PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0;
PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0;
PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0;
//=== VK_VALVE_descriptor_set_host_mapping ===
PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE vkGetDescriptorSetLayoutHostMappingInfoVALVE = 0;
PFN_vkGetDescriptorSetHostMappingVALVE vkGetDescriptorSetHostMappingVALVE = 0;
};
//========================================
//=== RAII HANDLE forward declarations ===
//========================================
//=== VK_VERSION_1_0 ===
class Instance;
class PhysicalDevice;
class Device;
class Queue;
class DeviceMemory;
class Fence;
class Semaphore;
class Event;
class QueryPool;
class Buffer;
class BufferView;
class Image;
class ImageView;
class ShaderModule;
class PipelineCache;
class Pipeline;
class PipelineLayout;
class Sampler;
class DescriptorPool;
class DescriptorSet;
class DescriptorSetLayout;
class Framebuffer;
class RenderPass;
class CommandPool;
class CommandBuffer;
//=== VK_VERSION_1_1 ===
class SamplerYcbcrConversion;
class DescriptorUpdateTemplate;
//=== VK_VERSION_1_3 ===
class PrivateDataSlot;
//=== VK_KHR_surface ===
class SurfaceKHR;
//=== VK_KHR_swapchain ===
class SwapchainKHR;
//=== VK_KHR_display ===
class DisplayKHR;
class DisplayModeKHR;
//=== VK_EXT_debug_report ===
class DebugReportCallbackEXT;
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
class VideoSessionKHR;
class VideoSessionParametersKHR;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NVX_binary_import ===
class CuModuleNVX;
class CuFunctionNVX;
//=== VK_EXT_debug_utils ===
class DebugUtilsMessengerEXT;
//=== VK_KHR_acceleration_structure ===
class AccelerationStructureKHR;
//=== VK_EXT_validation_cache ===
class ValidationCacheEXT;
//=== VK_NV_ray_tracing ===
class AccelerationStructureNV;
//=== VK_INTEL_performance_query ===
class PerformanceConfigurationINTEL;
//=== VK_KHR_deferred_host_operations ===
class DeferredOperationKHR;
//=== VK_NV_device_generated_commands ===
class IndirectCommandsLayoutNV;
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_buffer_collection ===
class BufferCollectionFUCHSIA;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
//====================
//=== RAII HANDLES ===
//====================
class Context
{
public:
# if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
Context()
: m_dispatcher(new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher(
m_dynamicLoader.getProcAddress<PFN_vkGetInstanceProcAddr>("vkGetInstanceProcAddr")))
# else
Context(PFN_vkGetInstanceProcAddr getInstanceProcAddr)
: m_dispatcher(new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher(getInstanceProcAddr))
# endif
{
}
~Context() = default;
Context(Context const &) = delete;
Context(Context &&rhs) VULKAN_HPP_NOEXCEPT
# if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
: m_dynamicLoader(std::move(rhs.m_dynamicLoader)),
m_dispatcher(rhs.m_dispatcher.release())
# else
: m_dispatcher(rhs.m_dispatcher.release())
# endif
{
}
Context &operator=(Context const &) = delete;
Context &operator=(Context &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
# if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
m_dynamicLoader = std::move(rhs.m_dynamicLoader);
# endif
m_dispatcher.reset(rhs.m_dispatcher.release());
}
return *this;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return &*m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context &rhs)
{
# if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
std::swap(m_dynamicLoader, rhs.m_dynamicLoader);
# endif
m_dispatcher.swap(rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Instance
createInstance(VULKAN_HPP_NAMESPACE::InstanceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties>
enumerateInstanceExtensionProperties(Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> enumerateInstanceLayerProperties() const;
//=== VK_VERSION_1_1 ===
VULKAN_HPP_NODISCARD uint32_t enumerateInstanceVersion() const;
private:
# if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL
VULKAN_HPP_NAMESPACE::DynamicLoader m_dynamicLoader;
# endif
std::unique_ptr<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ContextDispatcher> m_dispatcher;
};
class Instance
{
public:
using CType = VkInstance;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance;
public:
Instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const &context,
VULKAN_HPP_NAMESPACE::InstanceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(context.getDispatcher()->vkCreateInstance(reinterpret_cast<const VkInstanceCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkInstance *>(&m_instance)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateInstance");
}
m_dispatcher.reset(new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher(context.getDispatcher()->vkGetInstanceProcAddr,
static_cast<VkInstance>(m_instance)));
}
Instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Context const &context,
VkInstance instance,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_instance(instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
{
m_dispatcher.reset(new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher(context.getDispatcher()->vkGetInstanceProcAddr,
static_cast<VkInstance>(m_instance)));
}
Instance(std::nullptr_t) {}
~Instance()
{
clear();
}
Instance() = delete;
Instance(Instance const &) = delete;
Instance(Instance &&rhs) VULKAN_HPP_NOEXCEPT
: m_instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_instance, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(rhs.m_dispatcher.release())
{
}
Instance &operator=(Instance const &) = delete;
Instance &operator=(Instance &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_instance = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_instance, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher.reset(rhs.m_dispatcher.release());
}
return *this;
}
VULKAN_HPP_NAMESPACE::Instance const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_instance;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_instance)
{
getDispatcher()->vkDestroyInstance(static_cast<VkInstance>(m_instance), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_instance = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return &*m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_instance, rhs.m_instance);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> enumeratePhysicalDevices() const;
VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr(const std::string &name) const VULKAN_HPP_NOEXCEPT;
//=== VK_VERSION_1_1 ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> enumeratePhysicalDeviceGroups() const;
//=== VK_KHR_display ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createDisplayPlaneSurfaceKHR(VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# if defined(VK_USE_PLATFORM_XLIB_KHR)
//=== VK_KHR_xlib_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createXlibSurfaceKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_XLIB_KHR*/
# if defined(VK_USE_PLATFORM_XCB_KHR)
//=== VK_KHR_xcb_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createXcbSurfaceKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_XCB_KHR*/
# if defined(VK_USE_PLATFORM_WAYLAND_KHR)
//=== VK_KHR_wayland_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createWaylandSurfaceKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
# if defined(VK_USE_PLATFORM_ANDROID_KHR)
//=== VK_KHR_android_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createAndroidSurfaceKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_win32_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createWin32SurfaceKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_debug_report ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT
createDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
void 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) const VULKAN_HPP_NOEXCEPT;
# if defined(VK_USE_PLATFORM_GGP)
//=== VK_GGP_stream_descriptor_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createStreamDescriptorSurfaceGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_GGP*/
# if defined(VK_USE_PLATFORM_VI_NN)
//=== VK_NN_vi_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createViSurfaceNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_VI_NN*/
//=== VK_KHR_device_group_creation ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> enumeratePhysicalDeviceGroupsKHR() const;
# if defined(VK_USE_PLATFORM_IOS_MVK)
//=== VK_MVK_ios_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createIOSSurfaceMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_IOS_MVK*/
# if defined(VK_USE_PLATFORM_MACOS_MVK)
//=== VK_MVK_macos_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createMacOSSurfaceMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_MACOS_MVK*/
//=== VK_EXT_debug_utils ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT
createDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
void submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,
const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT &callbackData) const VULKAN_HPP_NOEXCEPT;
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_imagepipe_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createImagePipeSurfaceFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_METAL_EXT)
//=== VK_EXT_metal_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createMetalSurfaceEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_METAL_EXT*/
//=== VK_EXT_headless_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createHeadlessSurfaceEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
//=== VK_EXT_directfb_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createDirectFBSurfaceEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
# if defined(VK_USE_PLATFORM_SCREEN_QNX)
//=== VK_QNX_screen_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
createScreenSurfaceQNX(VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
private:
VULKAN_HPP_NAMESPACE::Instance m_instance = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
std::unique_ptr<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher> m_dispatcher;
};
class PhysicalDevice
{
public:
using CType = VkPhysicalDevice;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice;
public:
PhysicalDevice(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &instance, VkPhysicalDevice physicalDevice)
: m_physicalDevice(physicalDevice)
, m_dispatcher(instance.getDispatcher())
{
}
PhysicalDevice(std::nullptr_t) {}
~PhysicalDevice()
{
clear();
}
PhysicalDevice() = delete;
PhysicalDevice(PhysicalDevice const &rhs)
: m_physicalDevice(rhs.m_physicalDevice)
, m_dispatcher(rhs.m_dispatcher)
{}
PhysicalDevice(PhysicalDevice &&rhs) VULKAN_HPP_NOEXCEPT
: m_physicalDevice(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_physicalDevice, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
PhysicalDevice &operator=(PhysicalDevice const &rhs)
{
m_physicalDevice = rhs.m_physicalDevice;
m_dispatcher = rhs.m_dispatcher;
return *this;
}
PhysicalDevice &operator=(PhysicalDevice &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
m_physicalDevice = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_physicalDevice, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::PhysicalDevice const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_physicalDevice;
}
void clear() VULKAN_HPP_NOEXCEPT
{
m_physicalDevice = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_physicalDevice, rhs.m_physicalDevice);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD 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 VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> getQueueFamilyProperties() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Device
createDevice(VULKAN_HPP_NAMESPACE::DeviceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties>
enumerateDeviceExtensionProperties(Optional<const std::string> layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> enumerateDeviceLayerProperties() const;
VULKAN_HPP_NODISCARD 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) const VULKAN_HPP_NOEXCEPT;
//=== VK_VERSION_1_1 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2() const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2() const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 &imageFormatInfo) const;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 &imageFormatInfo) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> getQueueFamilyProperties2() const VULKAN_HPP_NOEXCEPT;
template<typename StructureChain>
VULKAN_HPP_NODISCARD std::vector<StructureChain> getQueueFamilyProperties2() const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2() const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 &formatInfo) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties
getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo &externalBufferInfo) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties
getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo &externalFenceInfo) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties
getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo &externalSemaphoreInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_VERSION_1_3 ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> getToolProperties() const;
//=== VK_KHR_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getSurfaceSupportKHR(uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
//=== VK_KHR_swapchain ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::Rect2D> getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const;
//=== VK_KHR_display ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> getDisplayPropertiesKHR() const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> getDisplayPlanePropertiesKHR() const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::DisplayKHR> getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex) const;
# if defined(VK_USE_PLATFORM_XLIB_KHR)
//=== VK_KHR_xlib_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex, Display &dpy, VisualID visualID) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_USE_PLATFORM_XLIB_KHR*/
# if defined(VK_USE_PLATFORM_XCB_KHR)
//=== VK_KHR_xcb_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex, xcb_connection_t &connection, xcb_visualid_t visual_id) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_USE_PLATFORM_XCB_KHR*/
# if defined(VK_USE_PLATFORM_WAYLAND_KHR)
//=== VK_KHR_wayland_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,
struct wl_display &display) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_win32_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getWin32PresentationSupportKHR(uint32_t queueFamilyIndex) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR
getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileKHR &videoProfile) const;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileKHR &videoProfile) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>
getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR &videoFormatInfo) const;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NV_external_memory_capabilities ===
VULKAN_HPP_NODISCARD 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_DEFAULT_ARGUMENT_ASSIGNMENT,
VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
//=== VK_KHR_get_physical_device_properties2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR() const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFeatures2KHR() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR() const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getProperties2KHR() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageFormatProperties2
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 &imageFormatInfo) const;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 &imageFormatInfo) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> getQueueFamilyProperties2KHR() const VULKAN_HPP_NOEXCEPT;
template<typename StructureChain>
VULKAN_HPP_NODISCARD std::vector<StructureChain> getQueueFamilyProperties2KHR() const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 &formatInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_external_memory_capabilities ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties
getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo &externalBufferInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_external_semaphore_capabilities ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties
getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo &externalSemaphoreInfo) const VULKAN_HPP_NOEXCEPT;
# if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
//=== VK_EXT_acquire_xlib_display ===
void acquireXlibDisplayEXT(Display &dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DisplayKHR getRandROutputDisplayEXT(Display &dpy, RROutput rrOutput) const;
# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
//=== VK_EXT_display_surface_counter ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const;
//=== VK_KHR_external_fence_capabilities ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties
getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo &externalFenceInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_performance_query ===
VULKAN_HPP_NODISCARD std::pair<std::vector<PerformanceCounterKHR>, std::vector<PerformanceCounterDescriptionKHR>>
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex) const;
VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR(
const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR &performanceQueryCreateInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_get_surface_capabilities2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const;
//=== VK_KHR_get_display_properties2 ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> getDisplayProperties2KHR() const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> getDisplayPlaneProperties2KHR() const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR
getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR &displayPlaneInfo) const;
//=== VK_EXT_sample_locations ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_calibrated_timestamps ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> getCalibrateableTimeDomainsEXT() const;
//=== VK_KHR_fragment_shading_rate ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> getFragmentShadingRatesKHR() const;
//=== VK_EXT_tooling_info ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> getToolPropertiesEXT() const;
//=== VK_NV_cooperative_matrix ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> getCooperativeMatrixPropertiesNV() const;
//=== VK_NV_coverage_reduction_mode ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> getSupportedFramebufferMixedSamplesCombinationsNV() const;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_EXT_full_screen_exclusive ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR>
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_acquire_drm_display ===
void acquireDrmDisplayEXT(int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DisplayKHR getDrmDisplayEXT(int32_t drmFd, uint32_t connectorId) const;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_acquire_winrt_display ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DisplayKHR getWinrtDisplayNV(uint32_t deviceRelativeId) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
//=== VK_EXT_directfb_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,
IDirectFB &dfb) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
# if defined(VK_USE_PLATFORM_SCREEN_QNX)
//=== VK_QNX_screen_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Bool32 getScreenPresentationSupportQNX(uint32_t queueFamilyIndex,
struct _screen_window &window) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
private:
VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *m_dispatcher = nullptr;
};
class PhysicalDevices : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice>
{
public:
PhysicalDevices(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &instance)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *dispatcher = instance.getDispatcher();
std::vector<VkPhysicalDevice> physicalDevices;
uint32_t physicalDeviceCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
dispatcher->vkEnumeratePhysicalDevices(static_cast<VkInstance>(*instance), &physicalDeviceCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && physicalDeviceCount)
{
physicalDevices.resize(physicalDeviceCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
dispatcher->vkEnumeratePhysicalDevices(static_cast<VkInstance>(*instance), &physicalDeviceCount, physicalDevices.data()));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(physicalDeviceCount <= physicalDevices.size());
this->reserve(physicalDeviceCount);
for(auto const &physicalDevice : physicalDevices)
{
this->emplace_back(instance, physicalDevice);
}
}
else
{
throwResultException(result, "vkEnumeratePhysicalDevices");
}
}
PhysicalDevices(std::nullptr_t) {}
PhysicalDevices() = delete;
PhysicalDevices(PhysicalDevices const &) = delete;
PhysicalDevices(PhysicalDevices &&rhs) = default;
PhysicalDevices &operator=(PhysicalDevices const &) = delete;
PhysicalDevices &operator=(PhysicalDevices &&rhs) = default;
};
class Device
{
public:
using CType = VkDevice;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice;
public:
Device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &physicalDevice,
VULKAN_HPP_NAMESPACE::DeviceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
physicalDevice.getDispatcher()->vkCreateDevice(static_cast<VkPhysicalDevice>(*physicalDevice),
reinterpret_cast<const VkDeviceCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkDevice *>(&m_device)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDevice");
}
m_dispatcher.reset(new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher(physicalDevice.getDispatcher()->vkGetDeviceProcAddr,
static_cast<VkDevice>(m_device)));
}
Device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &physicalDevice,
VkDevice device,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
{
m_dispatcher.reset(new VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher(physicalDevice.getDispatcher()->vkGetDeviceProcAddr,
static_cast<VkDevice>(m_device)));
}
Device(std::nullptr_t) {}
~Device()
{
clear();
}
Device() = delete;
Device(Device const &) = delete;
Device(Device &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(rhs.m_dispatcher.release())
{
}
Device &operator=(Device const &) = delete;
Device &operator=(Device &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher.reset(rhs.m_dispatcher.release());
}
return *this;
}
VULKAN_HPP_NAMESPACE::Device const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_device;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_device)
{
getDispatcher()->vkDestroyDevice(static_cast<VkDevice>(m_device), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return &*m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD PFN_vkVoidFunction getProcAddr(const std::string &name) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Queue getQueue(uint32_t queueFamilyIndex, uint32_t queueIndex) const;
void waitIdle() const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DeviceMemory
allocateMemory(VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const &allocateInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
void flushMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const &memoryRanges) const;
void invalidateMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const &memoryRanges) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Fence
createFence(VULKAN_HPP_NAMESPACE::FenceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
void resetFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const &fences) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result
waitForFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const &fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Semaphore
createSemaphore(VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Event
createEvent(VULKAN_HPP_NAMESPACE::EventCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::QueryPool
createQueryPool(VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Buffer
createBuffer(VULKAN_HPP_NAMESPACE::BufferCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::BufferView
createBufferView(VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Image
createImage(VULKAN_HPP_NAMESPACE::ImageCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::ImageView
createImageView(VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::ShaderModule
createShaderModule(VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PipelineCache
createPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline>
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 = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline
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 = nullptr) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline>
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 = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline
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 = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PipelineLayout
createPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Sampler
createSampler(VULKAN_HPP_NAMESPACE::SamplerCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout
createDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DescriptorPool
createDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>
allocateDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const &allocateInfo) const;
void updateDescriptorSets(ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const &descriptorWrites,
ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const &descriptorCopies) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Framebuffer
createFramebuffer(VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::RenderPass
createRenderPass(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::CommandPool
createCommandPool(VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>
allocateCommandBuffers(VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const &allocateInfo) const;
//=== VK_VERSION_1_1 ===
void bindBufferMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const &bindInfos) const;
void bindImageMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const &bindInfos) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags
getGroupPeerMemoryFeatures(uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Queue getQueue2(VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const &queueInfo) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion
createSamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate
createDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo &createInfo) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo &createInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_VERSION_1_2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::RenderPass
createRenderPass2(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo &waitInfo, uint64_t timeout) const;
void signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo &signalInfo) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress
getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD uint64_t getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD uint64_t
getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo &info) const VULKAN_HPP_NOEXCEPT;
//=== VK_VERSION_1_3 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot
createPrivateDataSlot(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
void setPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,
uint64_t objectHandle,
VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
uint64_t data) const;
VULKAN_HPP_NODISCARD uint64_t getPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,
uint64_t objectHandle,
VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
getImageSparseMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_swapchain ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR
createSwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR getGroupPresentCapabilitiesKHR() const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const;
VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t>
acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR &acquireInfo) const;
//=== VK_KHR_display_swapchain ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>
createSharedSwapchainsKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR
createSharedSwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
//=== VK_EXT_debug_marker ===
void debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT &tagInfo) const;
void debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT &nameInfo) const;
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR
createVideoSessionKHR(VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR
createVideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_NVX_binary_import ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX
createCuModuleNVX(VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX
createCuFunctionNVX(VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
//=== VK_NVX_image_view_handle ===
VULKAN_HPP_NODISCARD uint32_t getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX &info) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_device_group ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex) const VULKAN_HPP_NOEXCEPT;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_memory_win32 ===
VULKAN_HPP_NODISCARD HANDLE getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR &getWin32HandleInfo) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_memory_fd ===
VULKAN_HPP_NODISCARD int getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR &getFdInfo) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd) const;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_semaphore_win32 ===
void importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR &importSemaphoreWin32HandleInfo) const;
VULKAN_HPP_NODISCARD HANDLE getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR &getWin32HandleInfo) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_semaphore_fd ===
void importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR &importSemaphoreFdInfo) const;
VULKAN_HPP_NODISCARD int getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR &getFdInfo) const;
//=== VK_KHR_descriptor_update_template ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate
createDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
void destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_display_control ===
void displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT &displayPowerInfo) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Fence
registerEventEXT(VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const &deviceEventInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Fence
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 = nullptr) const;
//=== VK_EXT_hdr_metadata ===
void setHdrMetadataEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const &swapchains,
ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const &metadata) const;
//=== VK_KHR_create_renderpass2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::RenderPass
createRenderPass2KHR(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_fence_win32 ===
void importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR &importFenceWin32HandleInfo) const;
VULKAN_HPP_NODISCARD HANDLE getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR &getWin32HandleInfo) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_fence_fd ===
void importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR &importFenceFdInfo) const;
VULKAN_HPP_NODISCARD int getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR &getFdInfo) const;
//=== VK_KHR_performance_query ===
void acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR &info) const;
void releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_debug_utils ===
void setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT &nameInfo) const;
void setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT &tagInfo) const;
# if defined(VK_USE_PLATFORM_ANDROID_KHR)
//=== VK_ANDROID_external_memory_android_hardware_buffer ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer &buffer) const;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer &buffer) const;
VULKAN_HPP_NODISCARD struct AHardwareBuffer *
getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID &info) const;
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
//=== VK_KHR_get_memory_requirements2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_acceleration_structure ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR
createAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result
buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const &infos,
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR *const> const &pBuildRangeInfos) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result
copyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR &info) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result
copyAccelerationStructureToMemoryKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR &info) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result
copyMemoryToAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR &info) const;
template<typename DataType>
VULKAN_HPP_NODISCARD std::vector<DataType>
writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &accelerationStructures,
VULKAN_HPP_NAMESPACE::QueryType queryType,
size_t dataSize,
size_t stride) const;
template<typename DataType>
VULKAN_HPP_NODISCARD DataType
writeAccelerationStructuresPropertyKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &accelerationStructures,
VULKAN_HPP_NAMESPACE::QueryType queryType,
size_t stride) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress
getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR
getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR &versionInfo) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR
getAccelerationStructureBuildSizesKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,
const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR &buildInfo,
ArrayProxy<const uint32_t> const &maxPrimitiveCounts VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const;
//=== VK_KHR_sampler_ycbcr_conversion ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion
createSamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
void destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_bind_memory2 ===
void bindBufferMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const &bindInfos) const;
void bindImageMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const &bindInfos) const;
//=== VK_EXT_validation_cache ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT
createValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
//=== VK_NV_ray_tracing ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV
createAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV(
const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> getAccelerationStructureMemoryRequirementsNV(
const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV &info) const VULKAN_HPP_NOEXCEPT;
void bindAccelerationStructureMemoryNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const &bindInfos) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline>
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 = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline
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 = nullptr) const;
//=== VK_KHR_maintenance3 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo &createInfo) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo &createInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_external_memory_host ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void *pHostPointer) const;
//=== VK_EXT_calibrated_timestamps ===
VULKAN_HPP_NODISCARD std::pair<std::vector<uint64_t>, uint64_t>
getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const &timestampInfos) const;
VULKAN_HPP_NODISCARD std::pair<uint64_t, uint64_t>
getCalibratedTimestampEXT(const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT &timestampInfo) const;
//=== VK_KHR_timeline_semaphore ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo &waitInfo, uint64_t timeout) const;
void signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo &signalInfo) const;
//=== VK_INTEL_performance_query ===
void initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL &initializeInfo) const;
void uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL
acquirePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const &acquireInfo) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PerformanceValueINTEL
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter) const;
//=== VK_EXT_buffer_device_address ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress
getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_EXT_full_screen_exclusive ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR
getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_buffer_device_address ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceAddress
getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD uint64_t getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD uint64_t
getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo &info) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_deferred_host_operations ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR
createDeferredOperationKHR(VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
//=== VK_KHR_pipeline_executable_properties ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR &pipelineInfo) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR>
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR &executableInfo) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR &executableInfo) const;
//=== VK_NV_device_generated_commands ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV
createIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
//=== VK_EXT_private_data ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot
createPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
void destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
void setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,
uint64_t objectHandle,
VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
uint64_t data) const;
VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,
uint64_t objectHandle,
VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_ray_tracing_pipeline ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> 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 = nullptr) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::Pipeline 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 = nullptr) const;
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_external_memory ===
VULKAN_HPP_NODISCARD zx_handle_t getMemoryZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA &getZirconHandleInfo) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA
getMemoryZirconHandlePropertiesFUCHSIA(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle) const;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_external_semaphore ===
void importSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA &importSemaphoreZirconHandleInfo) const;
VULKAN_HPP_NODISCARD zx_handle_t
getSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA &getZirconHandleInfo) const;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_buffer_collection ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA
createBufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
# endif /*VK_USE_PLATFORM_FUCHSIA*/
//=== VK_NV_external_memory_rdma ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::RemoteAddressNV
getMemoryRemoteAddressNV(const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV &memoryGetRemoteAddressInfo) const;
//=== VK_KHR_maintenance4 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2
getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
getImageSparseMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT;
//=== VK_VALVE_descriptor_set_host_mapping ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE getDescriptorSetLayoutHostMappingInfoVALVE(
const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE &bindingReference) const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
std::unique_ptr<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher> m_dispatcher;
};
class AccelerationStructureKHR
{
public:
using CType = VkAccelerationStructureKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR;
public:
AccelerationStructureKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateAccelerationStructureKHR(static_cast<VkDevice>(*device),
reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkAccelerationStructureKHR *>(&m_accelerationStructure)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateAccelerationStructureKHR");
}
}
AccelerationStructureKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkAccelerationStructureKHR accelerationStructure,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_accelerationStructure(accelerationStructure)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
AccelerationStructureKHR(std::nullptr_t) {}
~AccelerationStructureKHR()
{
clear();
}
AccelerationStructureKHR() = delete;
AccelerationStructureKHR(AccelerationStructureKHR const &) = delete;
AccelerationStructureKHR(AccelerationStructureKHR &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_accelerationStructure(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_accelerationStructure, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
AccelerationStructureKHR &operator=(AccelerationStructureKHR const &) = delete;
AccelerationStructureKHR &operator=(AccelerationStructureKHR &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_accelerationStructure = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_accelerationStructure, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_accelerationStructure;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_accelerationStructure)
{
getDispatcher()->vkDestroyAccelerationStructureKHR(static_cast<VkDevice>(m_device),
static_cast<VkAccelerationStructureKHR>(m_accelerationStructure),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_accelerationStructure = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_accelerationStructure, rhs.m_accelerationStructure);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::AccelerationStructureKHR m_accelerationStructure = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class AccelerationStructureNV
{
public:
using CType = VkAccelerationStructureNV;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV;
public:
AccelerationStructureNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateAccelerationStructureNV(static_cast<VkDevice>(*device),
reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkAccelerationStructureNV *>(&m_accelerationStructure)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateAccelerationStructureNV");
}
}
AccelerationStructureNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkAccelerationStructureNV accelerationStructure,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_accelerationStructure(accelerationStructure)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
AccelerationStructureNV(std::nullptr_t) {}
~AccelerationStructureNV()
{
clear();
}
AccelerationStructureNV() = delete;
AccelerationStructureNV(AccelerationStructureNV const &) = delete;
AccelerationStructureNV(AccelerationStructureNV &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_accelerationStructure(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_accelerationStructure, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
AccelerationStructureNV &operator=(AccelerationStructureNV const &) = delete;
AccelerationStructureNV &operator=(AccelerationStructureNV &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_accelerationStructure = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_accelerationStructure, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::AccelerationStructureNV const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_accelerationStructure;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_accelerationStructure)
{
getDispatcher()->vkDestroyAccelerationStructureNV(static_cast<VkDevice>(m_device),
static_cast<VkAccelerationStructureNV>(m_accelerationStructure),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_accelerationStructure = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_accelerationStructure, rhs.m_accelerationStructure);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_NV_ray_tracing ===
template<typename DataType>
VULKAN_HPP_NODISCARD std::vector<DataType> getHandle(size_t dataSize) const;
template<typename DataType>
VULKAN_HPP_NODISCARD DataType getHandle() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::AccelerationStructureNV m_accelerationStructure = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Buffer
{
public:
using CType = VkBuffer;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer;
public:
Buffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::BufferCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkCreateBuffer(static_cast<VkDevice>(*device),
reinterpret_cast<const VkBufferCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkBuffer *>(&m_buffer)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateBuffer");
}
}
Buffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkBuffer buffer,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_buffer(buffer)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
Buffer(std::nullptr_t) {}
~Buffer()
{
clear();
}
Buffer() = delete;
Buffer(Buffer const &) = delete;
Buffer(Buffer &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_buffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_buffer, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Buffer &operator=(Buffer const &) = delete;
Buffer &operator=(Buffer &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_buffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_buffer, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Buffer const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_buffer;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_buffer)
{
getDispatcher()->vkDestroyBuffer(
static_cast<VkDevice>(m_device), static_cast<VkBuffer>(m_buffer), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_buffer = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Buffer &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_buffer, rhs.m_buffer);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
void bindMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::Buffer m_buffer = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
# if defined(VK_USE_PLATFORM_FUCHSIA)
class BufferCollectionFUCHSIA
{
public:
using CType = VkBufferCollectionFUCHSIA;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferCollectionFUCHSIA;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferCollectionFUCHSIA;
public:
BufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateBufferCollectionFUCHSIA(static_cast<VkDevice>(*device),
reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkBufferCollectionFUCHSIA *>(&m_collection)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateBufferCollectionFUCHSIA");
}
}
BufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkBufferCollectionFUCHSIA collection,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_collection(collection)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
BufferCollectionFUCHSIA(std::nullptr_t) {}
~BufferCollectionFUCHSIA()
{
clear();
}
BufferCollectionFUCHSIA() = delete;
BufferCollectionFUCHSIA(BufferCollectionFUCHSIA const &) = delete;
BufferCollectionFUCHSIA(BufferCollectionFUCHSIA &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_collection(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_collection, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
BufferCollectionFUCHSIA &operator=(BufferCollectionFUCHSIA const &) = delete;
BufferCollectionFUCHSIA &operator=(BufferCollectionFUCHSIA &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_collection = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_collection, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_collection;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_collection)
{
getDispatcher()->vkDestroyBufferCollectionFUCHSIA(static_cast<VkDevice>(m_device),
static_cast<VkBufferCollectionFUCHSIA>(m_collection),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_collection = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_collection, rhs.m_collection);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_FUCHSIA_buffer_collection ===
void setImageConstraints(const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA &imageConstraintsInfo) const;
void setBufferConstraints(const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA &bufferConstraintsInfo) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA getProperties() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA m_collection = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
# endif /*VK_USE_PLATFORM_FUCHSIA*/
class BufferView
{
public:
using CType = VkBufferView;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView;
public:
BufferView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateBufferView(static_cast<VkDevice>(*device),
reinterpret_cast<const VkBufferViewCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkBufferView *>(&m_bufferView)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateBufferView");
}
}
BufferView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkBufferView bufferView,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_bufferView(bufferView)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
BufferView(std::nullptr_t) {}
~BufferView()
{
clear();
}
BufferView() = delete;
BufferView(BufferView const &) = delete;
BufferView(BufferView &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_bufferView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_bufferView, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
BufferView &operator=(BufferView const &) = delete;
BufferView &operator=(BufferView &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_bufferView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_bufferView, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::BufferView const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_bufferView;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_bufferView)
{
getDispatcher()->vkDestroyBufferView(
static_cast<VkDevice>(m_device), static_cast<VkBufferView>(m_bufferView), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_bufferView = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::BufferView &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_bufferView, rhs.m_bufferView);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::BufferView m_bufferView = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class CommandPool
{
public:
using CType = VkCommandPool;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool;
public:
CommandPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateCommandPool(static_cast<VkDevice>(*device),
reinterpret_cast<const VkCommandPoolCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkCommandPool *>(&m_commandPool)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateCommandPool");
}
}
CommandPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkCommandPool commandPool,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_commandPool(commandPool)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
CommandPool(std::nullptr_t) {}
~CommandPool()
{
clear();
}
CommandPool() = delete;
CommandPool(CommandPool const &) = delete;
CommandPool(CommandPool &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_commandPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_commandPool, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
CommandPool &operator=(CommandPool const &) = delete;
CommandPool &operator=(CommandPool &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_commandPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_commandPool, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::CommandPool const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_commandPool;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_commandPool)
{
getDispatcher()->vkDestroyCommandPool(
static_cast<VkDevice>(m_device), static_cast<VkCommandPool>(m_commandPool), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_commandPool = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandPool &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_commandPool, rhs.m_commandPool);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
void reset(VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
//=== VK_VERSION_1_1 ===
void trim(VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_maintenance1 ===
void trimKHR(VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::CommandPool m_commandPool = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class CommandBuffer
{
public:
using CType = VkCommandBuffer;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer;
public:
CommandBuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device, VkCommandBuffer commandBuffer, VkCommandPool commandPool)
: m_device(*device)
, m_commandPool(commandPool)
, m_commandBuffer(commandBuffer)
, m_dispatcher(device.getDispatcher())
{
}
CommandBuffer(std::nullptr_t) {}
~CommandBuffer()
{
clear();
}
CommandBuffer() = delete;
CommandBuffer(CommandBuffer const &) = delete;
CommandBuffer(CommandBuffer &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_commandPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_commandPool, {})),
m_commandBuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_commandBuffer, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
CommandBuffer &operator=(CommandBuffer const &) = delete;
CommandBuffer &operator=(CommandBuffer &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_commandPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_commandPool, {});
m_commandBuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_commandBuffer, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::CommandBuffer const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_commandBuffer;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_commandBuffer)
{
getDispatcher()->vkFreeCommandBuffers(
static_cast<VkDevice>(m_device), static_cast<VkCommandPool>(m_commandPool), 1, reinterpret_cast<VkCommandBuffer const *>(&m_commandBuffer));
}
m_device = nullptr;
m_commandPool = nullptr;
m_commandBuffer = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_commandPool, rhs.m_commandPool);
std::swap(m_commandBuffer, rhs.m_commandBuffer);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
void begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo &beginInfo) const;
void end() const;
void reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
void bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline) const VULKAN_HPP_NOEXCEPT;
void setViewport(uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const &viewports) const VULKAN_HPP_NOEXCEPT;
void setScissor(uint32_t firstScissor, ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &scissors) const VULKAN_HPP_NOEXCEPT;
void setLineWidth(float lineWidth) const VULKAN_HPP_NOEXCEPT;
void setDepthBias(float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const VULKAN_HPP_NOEXCEPT;
void setBlendConstants(const float blendConstants[4]) const VULKAN_HPP_NOEXCEPT;
void setDepthBounds(float minDepthBounds, float maxDepthBounds) const VULKAN_HPP_NOEXCEPT;
void setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask) const VULKAN_HPP_NOEXCEPT;
void setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask) const VULKAN_HPP_NOEXCEPT;
void setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference) const VULKAN_HPP_NOEXCEPT;
void bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
VULKAN_HPP_NAMESPACE::PipelineLayout layout,
uint32_t firstSet,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const &descriptorSets,
ArrayProxy<const uint32_t> const &dynamicOffsets) const VULKAN_HPP_NOEXCEPT;
void bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
VULKAN_HPP_NAMESPACE::IndexType indexType) const VULKAN_HPP_NOEXCEPT;
void bindVertexBuffers(uint32_t firstBinding,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &buffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &offsets) const;
void draw(uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) const VULKAN_HPP_NOEXCEPT;
void
drawIndexed(uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const VULKAN_HPP_NOEXCEPT;
void drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
uint32_t drawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT;
void drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
uint32_t drawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT;
void dispatch(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const VULKAN_HPP_NOEXCEPT;
void dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset) const VULKAN_HPP_NOEXCEPT;
void copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const &regions) const VULKAN_HPP_NOEXCEPT;
void copyImage(VULKAN_HPP_NAMESPACE::Image srcImage,
VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,
VULKAN_HPP_NAMESPACE::Image dstImage,
VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const &regions) const VULKAN_HPP_NOEXCEPT;
void blitImage(VULKAN_HPP_NAMESPACE::Image srcImage,
VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,
VULKAN_HPP_NAMESPACE::Image dstImage,
VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const &regions,
VULKAN_HPP_NAMESPACE::Filter filter) const VULKAN_HPP_NOEXCEPT;
void copyBufferToImage(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,
VULKAN_HPP_NAMESPACE::Image dstImage,
VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const &regions) const VULKAN_HPP_NOEXCEPT;
void copyImageToBuffer(VULKAN_HPP_NAMESPACE::Image srcImage,
VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const &regions) const VULKAN_HPP_NOEXCEPT;
template<typename DataType>
void updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
ArrayProxy<const DataType> const &data) const VULKAN_HPP_NOEXCEPT;
void fillBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
VULKAN_HPP_NAMESPACE::DeviceSize size,
uint32_t data) const VULKAN_HPP_NOEXCEPT;
void clearColorImage(VULKAN_HPP_NAMESPACE::Image image,
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
const VULKAN_HPP_NAMESPACE::ClearColorValue &color,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const &ranges) const VULKAN_HPP_NOEXCEPT;
void clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue &depthStencil,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const &ranges) const VULKAN_HPP_NOEXCEPT;
void clearAttachments(ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const &attachments,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const &rects) const VULKAN_HPP_NOEXCEPT;
void resolveImage(VULKAN_HPP_NAMESPACE::Image srcImage,
VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,
VULKAN_HPP_NAMESPACE::Image dstImage,
VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const &regions) const VULKAN_HPP_NOEXCEPT;
void setEvent(VULKAN_HPP_NAMESPACE::Event event,
VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
void resetEvent(VULKAN_HPP_NAMESPACE::Event event,
VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
void waitEvents(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &events,
VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,
VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,
ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const &memoryBarriers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const &bufferMemoryBarriers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const &imageMemoryBarriers) const VULKAN_HPP_NOEXCEPT;
void pipelineBarrier(VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,
VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,
VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags,
ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const &memoryBarriers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const &bufferMemoryBarriers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const &imageMemoryBarriers) const VULKAN_HPP_NOEXCEPT;
void beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query,
VULKAN_HPP_NAMESPACE::QueryControlFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
void endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query) const VULKAN_HPP_NOEXCEPT;
void resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const VULKAN_HPP_NOEXCEPT;
void writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query) const VULKAN_HPP_NOEXCEPT;
void copyQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t firstQuery,
uint32_t queryCount,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
VULKAN_HPP_NAMESPACE::DeviceSize stride,
VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
template<typename ValuesType>
void pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,
VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,
uint32_t offset,
ArrayProxy<const ValuesType> const &values) const VULKAN_HPP_NOEXCEPT;
void beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo &renderPassBegin,
VULKAN_HPP_NAMESPACE::SubpassContents contents) const VULKAN_HPP_NOEXCEPT;
void nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents) const VULKAN_HPP_NOEXCEPT;
void endRenderPass() const VULKAN_HPP_NOEXCEPT;
void executeCommands(ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const &commandBuffers) const VULKAN_HPP_NOEXCEPT;
//=== VK_VERSION_1_1 ===
void setDeviceMask(uint32_t deviceMask) const VULKAN_HPP_NOEXCEPT;
void dispatchBase(uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const
VULKAN_HPP_NOEXCEPT;
//=== VK_VERSION_1_2 ===
void 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) const VULKAN_HPP_NOEXCEPT;
void 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) const VULKAN_HPP_NOEXCEPT;
void beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo &renderPassBegin,
const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &subpassBeginInfo) const VULKAN_HPP_NOEXCEPT;
void nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &subpassBeginInfo,
const VULKAN_HPP_NAMESPACE::SubpassEndInfo &subpassEndInfo) const VULKAN_HPP_NOEXCEPT;
void endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo &subpassEndInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_VERSION_1_3 ===
void setEvent2(VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::DependencyInfo &dependencyInfo) const VULKAN_HPP_NOEXCEPT;
void resetEvent2(VULKAN_HPP_NAMESPACE::Event event,
VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
void waitEvents2(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &events,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const &dependencyInfos) const;
void pipelineBarrier2(const VULKAN_HPP_NAMESPACE::DependencyInfo &dependencyInfo) const VULKAN_HPP_NOEXCEPT;
void
writeTimestamp2(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query) const VULKAN_HPP_NOEXCEPT;
void copyBuffer2(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 &copyBufferInfo) const VULKAN_HPP_NOEXCEPT;
void copyImage2(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 &copyImageInfo) const VULKAN_HPP_NOEXCEPT;
void copyBufferToImage2(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 &copyBufferToImageInfo) const VULKAN_HPP_NOEXCEPT;
void copyImageToBuffer2(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 &copyImageToBufferInfo) const VULKAN_HPP_NOEXCEPT;
void blitImage2(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 &blitImageInfo) const VULKAN_HPP_NOEXCEPT;
void resolveImage2(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 &resolveImageInfo) const VULKAN_HPP_NOEXCEPT;
void beginRendering(const VULKAN_HPP_NAMESPACE::RenderingInfo &renderingInfo) const VULKAN_HPP_NOEXCEPT;
void endRendering() const VULKAN_HPP_NOEXCEPT;
void setCullMode(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
void setFrontFace(VULKAN_HPP_NAMESPACE::FrontFace frontFace) const VULKAN_HPP_NOEXCEPT;
void setPrimitiveTopology(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology) const VULKAN_HPP_NOEXCEPT;
void setViewportWithCount(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const &viewports) const VULKAN_HPP_NOEXCEPT;
void setScissorWithCount(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &scissors) const VULKAN_HPP_NOEXCEPT;
void bindVertexBuffers2(uint32_t firstBinding,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &buffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &offsets,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &strides VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const;
void setDepthTestEnable(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable) const VULKAN_HPP_NOEXCEPT;
void setDepthWriteEnable(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable) const VULKAN_HPP_NOEXCEPT;
void setDepthCompareOp(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp) const VULKAN_HPP_NOEXCEPT;
void setDepthBoundsTestEnable(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable) const VULKAN_HPP_NOEXCEPT;
void setStencilTestEnable(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable) const VULKAN_HPP_NOEXCEPT;
void 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) const VULKAN_HPP_NOEXCEPT;
void setRasterizerDiscardEnable(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable) const VULKAN_HPP_NOEXCEPT;
void setDepthBiasEnable(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable) const VULKAN_HPP_NOEXCEPT;
void setPrimitiveRestartEnable(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_debug_marker ===
void debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT &markerInfo) const VULKAN_HPP_NOEXCEPT;
void debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT;
void debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT &markerInfo) const VULKAN_HPP_NOEXCEPT;
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
void beginVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR &beginInfo) const VULKAN_HPP_NOEXCEPT;
void endVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR &endCodingInfo) const VULKAN_HPP_NOEXCEPT;
void controlVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR &codingControlInfo) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_decode_queue ===
void decodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR &frameInfo) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_EXT_transform_feedback ===
void bindTransformFeedbackBuffersEXT(uint32_t firstBinding,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &buffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &offsets,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &sizes
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const;
void beginTransformFeedbackEXT(uint32_t firstCounterBuffer,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &counterBuffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &counterBufferOffsets
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const;
void endTransformFeedbackEXT(uint32_t firstCounterBuffer,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &counterBuffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &counterBufferOffsets
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const;
void beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query,
VULKAN_HPP_NAMESPACE::QueryControlFlags flags,
uint32_t index) const VULKAN_HPP_NOEXCEPT;
void endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index) const VULKAN_HPP_NOEXCEPT;
void drawIndirectByteCountEXT(uint32_t instanceCount,
uint32_t firstInstance,
VULKAN_HPP_NAMESPACE::Buffer counterBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset,
uint32_t counterOffset,
uint32_t vertexStride) const VULKAN_HPP_NOEXCEPT;
//=== VK_NVX_binary_import ===
void cuLaunchKernelNVX(const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX &launchInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_AMD_draw_indirect_count ===
void 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) const VULKAN_HPP_NOEXCEPT;
void drawIndexedIndirectCountAMD(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
VULKAN_HPP_NAMESPACE::Buffer countBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_dynamic_rendering ===
void beginRenderingKHR(const VULKAN_HPP_NAMESPACE::RenderingInfo &renderingInfo) const VULKAN_HPP_NOEXCEPT;
void endRenderingKHR() const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_device_group ===
void setDeviceMaskKHR(uint32_t deviceMask) const VULKAN_HPP_NOEXCEPT;
void dispatchBaseKHR(uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_push_descriptor ===
void pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
VULKAN_HPP_NAMESPACE::PipelineLayout layout,
uint32_t set,
ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const &descriptorWrites) const VULKAN_HPP_NOEXCEPT;
template<typename DataType>
void pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
VULKAN_HPP_NAMESPACE::PipelineLayout layout,
uint32_t set,
DataType const &data) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_conditional_rendering ===
void beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT &conditionalRenderingBegin) const VULKAN_HPP_NOEXCEPT;
void endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_clip_space_w_scaling ===
void setViewportWScalingNV(uint32_t firstViewport,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const &viewportWScalings) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_discard_rectangles ===
void setDiscardRectangleEXT(uint32_t firstDiscardRectangle,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &discardRectangles) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_create_renderpass2 ===
void beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo &renderPassBegin,
const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &subpassBeginInfo) const VULKAN_HPP_NOEXCEPT;
void nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &subpassBeginInfo,
const VULKAN_HPP_NAMESPACE::SubpassEndInfo &subpassEndInfo) const VULKAN_HPP_NOEXCEPT;
void endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo &subpassEndInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_debug_utils ===
void beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT &labelInfo) const VULKAN_HPP_NOEXCEPT;
void endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT;
void insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT &labelInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_sample_locations ===
void setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT &sampleLocationsInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_acceleration_structure ===
void
buildAccelerationStructuresKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const &infos,
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR *const> const &pBuildRangeInfos) const;
void buildAccelerationStructuresIndirectKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const &infos,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const &indirectDeviceAddresses,
ArrayProxy<const uint32_t> const &indirectStrides,
ArrayProxy<const uint32_t *const> const &pMaxPrimitiveCounts) const;
void copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR &info) const VULKAN_HPP_NOEXCEPT;
void copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR &info) const VULKAN_HPP_NOEXCEPT;
void copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR &info) const VULKAN_HPP_NOEXCEPT;
void writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &accelerationStructures,
VULKAN_HPP_NAMESPACE::QueryType queryType,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t firstQuery) const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_shading_rate_image ===
void bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout) const VULKAN_HPP_NOEXCEPT;
void
setViewportShadingRatePaletteNV(uint32_t firstViewport,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const &shadingRatePalettes) const VULKAN_HPP_NOEXCEPT;
void setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,
ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const &customSampleOrders) const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_ray_tracing ===
void 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) const VULKAN_HPP_NOEXCEPT;
void copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst,
VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,
VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode) const VULKAN_HPP_NOEXCEPT;
void 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) const VULKAN_HPP_NOEXCEPT;
void writeAccelerationStructuresPropertiesNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const &accelerationStructures,
VULKAN_HPP_NAMESPACE::QueryType queryType,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t firstQuery) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_draw_indirect_count ===
void 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) const VULKAN_HPP_NOEXCEPT;
void drawIndexedIndirectCountKHR(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
VULKAN_HPP_NAMESPACE::Buffer countBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT;
//=== VK_AMD_buffer_marker ===
void writeBufferMarkerAMD(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
uint32_t marker) const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_mesh_shader ===
void drawMeshTasksNV(uint32_t taskCount, uint32_t firstTask) const VULKAN_HPP_NOEXCEPT;
void drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
uint32_t drawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT;
void drawMeshTasksIndirectCountNV(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
VULKAN_HPP_NAMESPACE::Buffer countBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
uint32_t maxDrawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_scissor_exclusive ===
void setExclusiveScissorNV(uint32_t firstExclusiveScissor,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &exclusiveScissors) const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_device_diagnostic_checkpoints ===
template<typename CheckpointMarkerType>
void setCheckpointNV(CheckpointMarkerType const &checkpointMarker) const VULKAN_HPP_NOEXCEPT;
//=== VK_INTEL_performance_query ===
void setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL &markerInfo) const;
void setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL &markerInfo) const;
void setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL &overrideInfo) const;
//=== VK_KHR_fragment_shading_rate ===
void setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D &fragmentSize,
const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2]) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_line_rasterization ===
void setLineStippleEXT(uint32_t lineStippleFactor, uint16_t lineStipplePattern) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_extended_dynamic_state ===
void setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
void setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace) const VULKAN_HPP_NOEXCEPT;
void setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology) const VULKAN_HPP_NOEXCEPT;
void setViewportWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const &viewports) const VULKAN_HPP_NOEXCEPT;
void setScissorWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &scissors) const VULKAN_HPP_NOEXCEPT;
void bindVertexBuffers2EXT(uint32_t firstBinding,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &buffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &offsets,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &sizes VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &strides VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const;
void setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable) const VULKAN_HPP_NOEXCEPT;
void setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable) const VULKAN_HPP_NOEXCEPT;
void setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp) const VULKAN_HPP_NOEXCEPT;
void setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable) const VULKAN_HPP_NOEXCEPT;
void setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable) const VULKAN_HPP_NOEXCEPT;
void setStencilOpEXT(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,
VULKAN_HPP_NAMESPACE::StencilOp failOp,
VULKAN_HPP_NAMESPACE::StencilOp passOp,
VULKAN_HPP_NAMESPACE::StencilOp depthFailOp,
VULKAN_HPP_NAMESPACE::CompareOp compareOp) const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_device_generated_commands ===
void preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV &generatedCommandsInfo) const VULKAN_HPP_NOEXCEPT;
void executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,
const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV &generatedCommandsInfo) const VULKAN_HPP_NOEXCEPT;
void bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
VULKAN_HPP_NAMESPACE::Pipeline pipeline,
uint32_t groupIndex) const VULKAN_HPP_NOEXCEPT;
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_encode_queue ===
void encodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR &encodeInfo) const VULKAN_HPP_NOEXCEPT;
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_KHR_synchronization2 ===
void setEvent2KHR(VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::DependencyInfo &dependencyInfo) const VULKAN_HPP_NOEXCEPT;
void resetEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,
VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
void waitEvents2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &events,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const &dependencyInfos) const;
void pipelineBarrier2KHR(const VULKAN_HPP_NAMESPACE::DependencyInfo &dependencyInfo) const VULKAN_HPP_NOEXCEPT;
void writeTimestamp2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query) const VULKAN_HPP_NOEXCEPT;
void writeBufferMarker2AMD(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
uint32_t marker) const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_fragment_shading_rate_enums ===
void setFragmentShadingRateEnumNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate,
const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2]) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_copy_commands2 ===
void copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 &copyBufferInfo) const VULKAN_HPP_NOEXCEPT;
void copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 &copyImageInfo) const VULKAN_HPP_NOEXCEPT;
void copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 &copyBufferToImageInfo) const VULKAN_HPP_NOEXCEPT;
void copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 &copyImageToBufferInfo) const VULKAN_HPP_NOEXCEPT;
void blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 &blitImageInfo) const VULKAN_HPP_NOEXCEPT;
void resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 &resolveImageInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_ray_tracing_pipeline ===
void 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) const VULKAN_HPP_NOEXCEPT;
void 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) const VULKAN_HPP_NOEXCEPT;
void setRayTracingPipelineStackSizeKHR(uint32_t pipelineStackSize) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_vertex_input_dynamic_state ===
void setVertexInputEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const &vertexBindingDescriptions,
ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const &vertexAttributeDescriptions) const
VULKAN_HPP_NOEXCEPT;
//=== VK_HUAWEI_subpass_shading ===
void subpassShadingHUAWEI() const VULKAN_HPP_NOEXCEPT;
//=== VK_HUAWEI_invocation_mask ===
void bindInvocationMaskHUAWEI(VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_extended_dynamic_state2 ===
void setPatchControlPointsEXT(uint32_t patchControlPoints) const VULKAN_HPP_NOEXCEPT;
void setRasterizerDiscardEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable) const VULKAN_HPP_NOEXCEPT;
void setDepthBiasEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable) const VULKAN_HPP_NOEXCEPT;
void setLogicOpEXT(VULKAN_HPP_NAMESPACE::LogicOp logicOp) const VULKAN_HPP_NOEXCEPT;
void setPrimitiveRestartEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_color_write_enable ===
void setColorWriteEnableEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const &colorWriteEnables) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_multi_draw ===
void drawMultiEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const &vertexInfo,
uint32_t instanceCount,
uint32_t firstInstance,
uint32_t stride) const VULKAN_HPP_NOEXCEPT;
void drawMultiIndexedEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const &indexInfo,
uint32_t instanceCount,
uint32_t firstInstance,
uint32_t stride,
Optional<const int32_t> vertexOffset VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::CommandPool m_commandPool = {};
VULKAN_HPP_NAMESPACE::CommandBuffer m_commandBuffer = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class CommandBuffers : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>
{
public:
CommandBuffers(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const &allocateInfo)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *dispatcher = device.getDispatcher();
std::vector<VkCommandBuffer> commandBuffers(allocateInfo.commandBufferCount);
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(dispatcher->vkAllocateCommandBuffers(
static_cast<VkDevice>(*device), reinterpret_cast<const VkCommandBufferAllocateInfo *>(&allocateInfo), commandBuffers.data()));
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
this->reserve(allocateInfo.commandBufferCount);
for(auto const &commandBuffer : commandBuffers)
{
this->emplace_back(device, commandBuffer, static_cast<VkCommandPool>(allocateInfo.commandPool));
}
}
else
{
throwResultException(result, "vkAllocateCommandBuffers");
}
}
CommandBuffers(std::nullptr_t) {}
CommandBuffers() = delete;
CommandBuffers(CommandBuffers const &) = delete;
CommandBuffers(CommandBuffers &&rhs) = default;
CommandBuffers &operator=(CommandBuffers const &) = delete;
CommandBuffers &operator=(CommandBuffers &&rhs) = default;
};
class CuFunctionNVX
{
public:
using CType = VkCuFunctionNVX;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCuFunctionNVX;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuFunctionNVX;
public:
CuFunctionNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateCuFunctionNVX(static_cast<VkDevice>(*device),
reinterpret_cast<const VkCuFunctionCreateInfoNVX *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkCuFunctionNVX *>(&m_function)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateCuFunctionNVX");
}
}
CuFunctionNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkCuFunctionNVX function,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_function(function)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
CuFunctionNVX(std::nullptr_t) {}
~CuFunctionNVX()
{
clear();
}
CuFunctionNVX() = delete;
CuFunctionNVX(CuFunctionNVX const &) = delete;
CuFunctionNVX(CuFunctionNVX &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_function(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_function, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
CuFunctionNVX &operator=(CuFunctionNVX const &) = delete;
CuFunctionNVX &operator=(CuFunctionNVX &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_function = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_function, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::CuFunctionNVX const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_function;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_function)
{
getDispatcher()->vkDestroyCuFunctionNVX(
static_cast<VkDevice>(m_device), static_cast<VkCuFunctionNVX>(m_function), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_function = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_function, rhs.m_function);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::CuFunctionNVX m_function = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class CuModuleNVX
{
public:
using CType = VkCuModuleNVX;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCuModuleNVX;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCuModuleNVX;
public:
CuModuleNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateCuModuleNVX(static_cast<VkDevice>(*device),
reinterpret_cast<const VkCuModuleCreateInfoNVX *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkCuModuleNVX *>(&m_module)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateCuModuleNVX");
}
}
CuModuleNVX(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkCuModuleNVX module,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_module(module)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
CuModuleNVX(std::nullptr_t) {}
~CuModuleNVX()
{
clear();
}
CuModuleNVX() = delete;
CuModuleNVX(CuModuleNVX const &) = delete;
CuModuleNVX(CuModuleNVX &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_module(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_module, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
CuModuleNVX &operator=(CuModuleNVX const &) = delete;
CuModuleNVX &operator=(CuModuleNVX &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_module = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_module, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::CuModuleNVX const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_module;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_module)
{
getDispatcher()->vkDestroyCuModuleNVX(
static_cast<VkDevice>(m_device), static_cast<VkCuModuleNVX>(m_module), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_module = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_module, rhs.m_module);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::CuModuleNVX m_module = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class DebugReportCallbackEXT
{
public:
using CType = VkDebugReportCallbackEXT;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT;
public:
DebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &instance,
VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateDebugReportCallbackEXT(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkDebugReportCallbackEXT *>(&m_callback)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDebugReportCallbackEXT");
}
}
DebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &instance,
VkDebugReportCallbackEXT callback,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_instance(*instance)
, m_callback(callback)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
}
DebugReportCallbackEXT(std::nullptr_t) {}
~DebugReportCallbackEXT()
{
clear();
}
DebugReportCallbackEXT() = delete;
DebugReportCallbackEXT(DebugReportCallbackEXT const &) = delete;
DebugReportCallbackEXT(DebugReportCallbackEXT &&rhs) VULKAN_HPP_NOEXCEPT
: m_instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_instance, {})),
m_callback(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_callback, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DebugReportCallbackEXT &operator=(DebugReportCallbackEXT const &) = delete;
DebugReportCallbackEXT &operator=(DebugReportCallbackEXT &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_instance = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_instance, {});
m_callback = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_callback, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_callback;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_callback)
{
getDispatcher()->vkDestroyDebugReportCallbackEXT(static_cast<VkInstance>(m_instance),
static_cast<VkDebugReportCallbackEXT>(m_callback),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_instance = nullptr;
m_callback = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Instance getInstance() const
{
return m_instance;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_instance, rhs.m_instance);
std::swap(m_callback, rhs.m_callback);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Instance m_instance = {};
VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT m_callback = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *m_dispatcher = nullptr;
};
class DebugUtilsMessengerEXT
{
public:
using CType = VkDebugUtilsMessengerEXT;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
DebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &instance,
VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateDebugUtilsMessengerEXT(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkDebugUtilsMessengerEXT *>(&m_messenger)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDebugUtilsMessengerEXT");
}
}
DebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &instance,
VkDebugUtilsMessengerEXT messenger,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_instance(*instance)
, m_messenger(messenger)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
}
DebugUtilsMessengerEXT(std::nullptr_t) {}
~DebugUtilsMessengerEXT()
{
clear();
}
DebugUtilsMessengerEXT() = delete;
DebugUtilsMessengerEXT(DebugUtilsMessengerEXT const &) = delete;
DebugUtilsMessengerEXT(DebugUtilsMessengerEXT &&rhs) VULKAN_HPP_NOEXCEPT
: m_instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_instance, {})),
m_messenger(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_messenger, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DebugUtilsMessengerEXT &operator=(DebugUtilsMessengerEXT const &) = delete;
DebugUtilsMessengerEXT &operator=(DebugUtilsMessengerEXT &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_instance = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_instance, {});
m_messenger = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_messenger, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_messenger;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_messenger)
{
getDispatcher()->vkDestroyDebugUtilsMessengerEXT(static_cast<VkInstance>(m_instance),
static_cast<VkDebugUtilsMessengerEXT>(m_messenger),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_instance = nullptr;
m_messenger = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Instance getInstance() const
{
return m_instance;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_instance, rhs.m_instance);
std::swap(m_messenger, rhs.m_messenger);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Instance m_instance = {};
VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT m_messenger = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *m_dispatcher = nullptr;
};
class DeferredOperationKHR
{
public:
using CType = VkDeferredOperationKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
DeferredOperationKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateDeferredOperationKHR(static_cast<VkDevice>(*device),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkDeferredOperationKHR *>(&m_operation)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDeferredOperationKHR");
}
}
DeferredOperationKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkDeferredOperationKHR operation,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_operation(operation)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
DeferredOperationKHR(std::nullptr_t) {}
~DeferredOperationKHR()
{
clear();
}
DeferredOperationKHR() = delete;
DeferredOperationKHR(DeferredOperationKHR const &) = delete;
DeferredOperationKHR(DeferredOperationKHR &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_operation(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_operation, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DeferredOperationKHR &operator=(DeferredOperationKHR const &) = delete;
DeferredOperationKHR &operator=(DeferredOperationKHR &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_operation = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_operation, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DeferredOperationKHR const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_operation;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_operation)
{
getDispatcher()->vkDestroyDeferredOperationKHR(static_cast<VkDevice>(m_device),
static_cast<VkDeferredOperationKHR>(m_operation),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_operation = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_operation, rhs.m_operation);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_KHR_deferred_host_operations ===
VULKAN_HPP_NODISCARD uint32_t getMaxConcurrency() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getResult() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result join() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::DeferredOperationKHR m_operation = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class DescriptorPool
{
public:
using CType = VkDescriptorPool;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool;
public:
DescriptorPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateDescriptorPool(static_cast<VkDevice>(*device),
reinterpret_cast<const VkDescriptorPoolCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkDescriptorPool *>(&m_descriptorPool)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDescriptorPool");
}
}
DescriptorPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkDescriptorPool descriptorPool,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_descriptorPool(descriptorPool)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
DescriptorPool(std::nullptr_t) {}
~DescriptorPool()
{
clear();
}
DescriptorPool() = delete;
DescriptorPool(DescriptorPool const &) = delete;
DescriptorPool(DescriptorPool &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_descriptorPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorPool, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DescriptorPool &operator=(DescriptorPool const &) = delete;
DescriptorPool &operator=(DescriptorPool &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_descriptorPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorPool, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DescriptorPool const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_descriptorPool;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_descriptorPool)
{
getDispatcher()->vkDestroyDescriptorPool(static_cast<VkDevice>(m_device),
static_cast<VkDescriptorPool>(m_descriptorPool),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_descriptorPool = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorPool &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_descriptorPool, rhs.m_descriptorPool);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
void reset(VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::DescriptorPool m_descriptorPool = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class DescriptorSet
{
public:
using CType = VkDescriptorSet;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet;
public:
DescriptorSet(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device, VkDescriptorSet descriptorSet, VkDescriptorPool descriptorPool)
: m_device(*device)
, m_descriptorPool(descriptorPool)
, m_descriptorSet(descriptorSet)
, m_dispatcher(device.getDispatcher())
{
}
DescriptorSet(std::nullptr_t) {}
~DescriptorSet()
{
clear();
}
DescriptorSet() = delete;
DescriptorSet(DescriptorSet const &) = delete;
DescriptorSet(DescriptorSet &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_descriptorPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorPool, {})),
m_descriptorSet(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorSet, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DescriptorSet &operator=(DescriptorSet const &) = delete;
DescriptorSet &operator=(DescriptorSet &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_descriptorPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorPool, {});
m_descriptorSet = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorSet, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DescriptorSet const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_descriptorSet;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_descriptorSet)
{
getDispatcher()->vkFreeDescriptorSets(static_cast<VkDevice>(m_device),
static_cast<VkDescriptorPool>(m_descriptorPool),
1,
reinterpret_cast<VkDescriptorSet const *>(&m_descriptorSet));
}
m_device = nullptr;
m_descriptorPool = nullptr;
m_descriptorSet = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_descriptorPool, rhs.m_descriptorPool);
std::swap(m_descriptorSet, rhs.m_descriptorSet);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_1 ===
template<typename DataType>
void updateWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, DataType const &data) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_descriptor_update_template ===
template<typename DataType>
void updateWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, DataType const &data) const VULKAN_HPP_NOEXCEPT;
//=== VK_VALVE_descriptor_set_host_mapping ===
VULKAN_HPP_NODISCARD void *getHostMappingVALVE() const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::DescriptorPool m_descriptorPool = {};
VULKAN_HPP_NAMESPACE::DescriptorSet m_descriptorSet = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class DescriptorSets : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>
{
public:
DescriptorSets(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const &allocateInfo)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *dispatcher = device.getDispatcher();
std::vector<VkDescriptorSet> descriptorSets(allocateInfo.descriptorSetCount);
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(dispatcher->vkAllocateDescriptorSets(
static_cast<VkDevice>(*device), reinterpret_cast<const VkDescriptorSetAllocateInfo *>(&allocateInfo), descriptorSets.data()));
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
this->reserve(allocateInfo.descriptorSetCount);
for(auto const &descriptorSet : descriptorSets)
{
this->emplace_back(device, descriptorSet, static_cast<VkDescriptorPool>(allocateInfo.descriptorPool));
}
}
else
{
throwResultException(result, "vkAllocateDescriptorSets");
}
}
DescriptorSets(std::nullptr_t) {}
DescriptorSets() = delete;
DescriptorSets(DescriptorSets const &) = delete;
DescriptorSets(DescriptorSets &&rhs) = default;
DescriptorSets &operator=(DescriptorSets const &) = delete;
DescriptorSets &operator=(DescriptorSets &&rhs) = default;
};
class DescriptorSetLayout
{
public:
using CType = VkDescriptorSetLayout;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout;
public:
DescriptorSetLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateDescriptorSetLayout(static_cast<VkDevice>(*device),
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkDescriptorSetLayout *>(&m_descriptorSetLayout)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDescriptorSetLayout");
}
}
DescriptorSetLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkDescriptorSetLayout descriptorSetLayout,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_descriptorSetLayout(descriptorSetLayout)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
DescriptorSetLayout(std::nullptr_t) {}
~DescriptorSetLayout()
{
clear();
}
DescriptorSetLayout() = delete;
DescriptorSetLayout(DescriptorSetLayout const &) = delete;
DescriptorSetLayout(DescriptorSetLayout &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_descriptorSetLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorSetLayout, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DescriptorSetLayout &operator=(DescriptorSetLayout const &) = delete;
DescriptorSetLayout &operator=(DescriptorSetLayout &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_descriptorSetLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorSetLayout, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DescriptorSetLayout const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_descriptorSetLayout;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_descriptorSetLayout)
{
getDispatcher()->vkDestroyDescriptorSetLayout(static_cast<VkDevice>(m_device),
static_cast<VkDescriptorSetLayout>(m_descriptorSetLayout),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_descriptorSetLayout = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_descriptorSetLayout, rhs.m_descriptorSetLayout);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::DescriptorSetLayout m_descriptorSetLayout = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class DescriptorUpdateTemplate
{
public:
using CType = VkDescriptorUpdateTemplate;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate;
public:
DescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateDescriptorUpdateTemplate(static_cast<VkDevice>(*device),
reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkDescriptorUpdateTemplate *>(&m_descriptorUpdateTemplate)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDescriptorUpdateTemplate");
}
}
DescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkDescriptorUpdateTemplate descriptorUpdateTemplate,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_descriptorUpdateTemplate(descriptorUpdateTemplate)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
DescriptorUpdateTemplate(std::nullptr_t) {}
~DescriptorUpdateTemplate()
{
clear();
}
DescriptorUpdateTemplate() = delete;
DescriptorUpdateTemplate(DescriptorUpdateTemplate const &) = delete;
DescriptorUpdateTemplate(DescriptorUpdateTemplate &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_descriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorUpdateTemplate, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DescriptorUpdateTemplate &operator=(DescriptorUpdateTemplate const &) = delete;
DescriptorUpdateTemplate &operator=(DescriptorUpdateTemplate &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_descriptorUpdateTemplate = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_descriptorUpdateTemplate, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_descriptorUpdateTemplate;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_descriptorUpdateTemplate)
{
getDispatcher()->vkDestroyDescriptorUpdateTemplate(static_cast<VkDevice>(m_device),
static_cast<VkDescriptorUpdateTemplate>(m_descriptorUpdateTemplate),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_descriptorUpdateTemplate = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_descriptorUpdateTemplate, rhs.m_descriptorUpdateTemplate);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate m_descriptorUpdateTemplate = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class DeviceMemory
{
public:
using CType = VkDeviceMemory;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory;
public:
DeviceMemory(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const &allocateInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkAllocateMemory(static_cast<VkDevice>(*device),
reinterpret_cast<const VkMemoryAllocateInfo *>(&allocateInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkDeviceMemory *>(&m_memory)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkAllocateMemory");
}
}
DeviceMemory(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkDeviceMemory memory,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_memory(memory)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
DeviceMemory(std::nullptr_t) {}
~DeviceMemory()
{
clear();
}
DeviceMemory() = delete;
DeviceMemory(DeviceMemory const &) = delete;
DeviceMemory(DeviceMemory &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_memory(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_memory, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DeviceMemory &operator=(DeviceMemory const &) = delete;
DeviceMemory &operator=(DeviceMemory &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_memory = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_memory, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DeviceMemory const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_memory;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_memory)
{
getDispatcher()->vkFreeMemory(
static_cast<VkDevice>(m_device), static_cast<VkDeviceMemory>(m_memory), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_memory = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceMemory &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_memory, rhs.m_memory);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD void *mapMemory(VULKAN_HPP_NAMESPACE::DeviceSize offset,
VULKAN_HPP_NAMESPACE::DeviceSize size,
VULKAN_HPP_NAMESPACE::MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
void unmapMemory() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getCommitment() const VULKAN_HPP_NOEXCEPT;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_external_memory_win32 ===
VULKAN_HPP_NODISCARD HANDLE getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_pageable_device_local_memory ===
void setPriorityEXT(float priority) const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::DeviceMemory m_memory = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class DisplayKHR
{
public:
using CType = VkDisplayKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR;
public:
DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &physicalDevice, int32_t drmFd, uint32_t connectorId)
: m_physicalDevice(*physicalDevice)
, m_dispatcher(physicalDevice.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(physicalDevice.getDispatcher()->vkGetDrmDisplayEXT(
static_cast<VkPhysicalDevice>(*physicalDevice), drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>(&m_display)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkGetDrmDisplayEXT");
}
}
# if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &physicalDevice, Display &dpy, RROutput rrOutput)
: m_physicalDevice(*physicalDevice)
, m_dispatcher(physicalDevice.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(physicalDevice.getDispatcher()->vkGetRandROutputDisplayEXT(
static_cast<VkPhysicalDevice>(*physicalDevice), &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>(&m_display)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkGetRandROutputDisplayEXT");
}
}
# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
# if defined(VK_USE_PLATFORM_WIN32_KHR)
DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &physicalDevice, uint32_t deviceRelativeId)
: m_physicalDevice(*physicalDevice)
, m_dispatcher(physicalDevice.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(physicalDevice.getDispatcher()->vkGetWinrtDisplayNV(
static_cast<VkPhysicalDevice>(*physicalDevice), deviceRelativeId, reinterpret_cast<VkDisplayKHR *>(&m_display)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkGetWinrtDisplayNV");
}
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
DisplayKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &physicalDevice, VkDisplayKHR display)
: m_physicalDevice(*physicalDevice)
, m_display(display)
, m_dispatcher(physicalDevice.getDispatcher())
{
}
DisplayKHR(std::nullptr_t) {}
~DisplayKHR()
{
clear();
}
DisplayKHR() = delete;
DisplayKHR(DisplayKHR const &) = delete;
DisplayKHR(DisplayKHR &&rhs) VULKAN_HPP_NOEXCEPT
: m_physicalDevice(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_physicalDevice, {})),
m_display(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_display, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DisplayKHR &operator=(DisplayKHR const &) = delete;
DisplayKHR &operator=(DisplayKHR &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_physicalDevice = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_physicalDevice, {});
m_display = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_display, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DisplayKHR const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_display;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_display)
{
getDispatcher()->vkReleaseDisplayEXT(static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkDisplayKHR>(m_display));
}
m_physicalDevice = nullptr;
m_display = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::PhysicalDevice getPhysicalDevice() const
{
return m_physicalDevice;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_physicalDevice, rhs.m_physicalDevice);
std::swap(m_display, rhs.m_display);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_KHR_display ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> getModeProperties() const;
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR
createMode(VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr) const;
//=== VK_KHR_get_display_properties2 ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> getModeProperties2() const;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_acquire_winrt_display ===
void acquireWinrtNV() const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
private:
VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice = {};
VULKAN_HPP_NAMESPACE::DisplayKHR m_display = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *m_dispatcher = nullptr;
};
class DisplayKHRs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>
{
public:
DisplayKHRs(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice const &physicalDevice, uint32_t planeIndex)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *dispatcher = physicalDevice.getDispatcher();
std::vector<VkDisplayKHR> displays;
uint32_t displayCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
dispatcher->vkGetDisplayPlaneSupportedDisplaysKHR(static_cast<VkPhysicalDevice>(*physicalDevice), planeIndex, &displayCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && displayCount)
{
displays.resize(displayCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(dispatcher->vkGetDisplayPlaneSupportedDisplaysKHR(
static_cast<VkPhysicalDevice>(*physicalDevice), planeIndex, &displayCount, displays.data()));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(displayCount <= displays.size());
this->reserve(displayCount);
for(auto const &displayKHR : displays)
{
this->emplace_back(physicalDevice, displayKHR);
}
}
else
{
throwResultException(result, "vkGetDisplayPlaneSupportedDisplaysKHR");
}
}
DisplayKHRs(std::nullptr_t) {}
DisplayKHRs() = delete;
DisplayKHRs(DisplayKHRs const &) = delete;
DisplayKHRs(DisplayKHRs &&rhs) = default;
DisplayKHRs &operator=(DisplayKHRs const &) = delete;
DisplayKHRs &operator=(DisplayKHRs &&rhs) = default;
};
class DisplayModeKHR
{
public:
using CType = VkDisplayModeKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR;
public:
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)
: m_physicalDevice(display.getPhysicalDevice())
, m_dispatcher(display.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(display.getDispatcher()->vkCreateDisplayModeKHR(
static_cast<VkPhysicalDevice>(display.getPhysicalDevice()),
static_cast<VkDisplayKHR>(*display),
reinterpret_cast<const VkDisplayModeCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)),
reinterpret_cast<VkDisplayModeKHR *>(&m_displayModeKHR)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDisplayModeKHR");
}
}
DisplayModeKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayKHR const &display, VkDisplayModeKHR displayModeKHR)
: m_physicalDevice(display.getPhysicalDevice())
, m_displayModeKHR(displayModeKHR)
, m_dispatcher(display.getDispatcher())
{
}
DisplayModeKHR(std::nullptr_t) {}
~DisplayModeKHR()
{
clear();
}
DisplayModeKHR() = delete;
DisplayModeKHR(DisplayModeKHR const &rhs)
: m_displayModeKHR(rhs.m_displayModeKHR)
, m_dispatcher(rhs.m_dispatcher)
{}
DisplayModeKHR(DisplayModeKHR &&rhs) VULKAN_HPP_NOEXCEPT
: m_physicalDevice(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_physicalDevice, {})),
m_displayModeKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_displayModeKHR, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
DisplayModeKHR &operator=(DisplayModeKHR const &rhs)
{
m_displayModeKHR = rhs.m_displayModeKHR;
m_dispatcher = rhs.m_dispatcher;
return *this;
}
DisplayModeKHR &operator=(DisplayModeKHR &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
m_physicalDevice = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_physicalDevice, {});
m_displayModeKHR = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_displayModeKHR, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::DisplayModeKHR const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_displayModeKHR;
}
void clear() VULKAN_HPP_NOEXCEPT
{
m_physicalDevice = nullptr;
m_displayModeKHR = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_physicalDevice, rhs.m_physicalDevice);
std::swap(m_displayModeKHR, rhs.m_displayModeKHR);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_KHR_display ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR getDisplayPlaneCapabilities(uint32_t planeIndex) const;
private:
VULKAN_HPP_NAMESPACE::PhysicalDevice m_physicalDevice = {};
VULKAN_HPP_NAMESPACE::DisplayModeKHR m_displayModeKHR = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *m_dispatcher = nullptr;
};
class Event
{
public:
using CType = VkEvent;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent;
public:
Event(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::EventCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkCreateEvent(static_cast<VkDevice>(*device),
reinterpret_cast<const VkEventCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkEvent *>(&m_event)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateEvent");
}
}
Event(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkEvent event,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_event(event)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
Event(std::nullptr_t) {}
~Event()
{
clear();
}
Event() = delete;
Event(Event const &) = delete;
Event(Event &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_event(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_event, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Event &operator=(Event const &) = delete;
Event &operator=(Event &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_event = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_event, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Event const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_event;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_event)
{
getDispatcher()->vkDestroyEvent(
static_cast<VkDevice>(m_device), static_cast<VkEvent>(m_event), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_event = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Event &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_event, rhs.m_event);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const;
void set() const;
void reset() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::Event m_event = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Fence
{
public:
using CType = VkFence;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence;
public:
Fence(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::FenceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkCreateFence(static_cast<VkDevice>(*device),
reinterpret_cast<const VkFenceCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkFence *>(&m_fence)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateFence");
}
}
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)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkRegisterDeviceEventEXT(static_cast<VkDevice>(*device),
reinterpret_cast<const VkDeviceEventInfoEXT *>(&deviceEventInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkFence *>(&m_fence)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkRegisterDeviceEventEXT");
}
}
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)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkRegisterDisplayEventEXT(static_cast<VkDevice>(*device),
static_cast<VkDisplayKHR>(*display),
reinterpret_cast<const VkDisplayEventInfoEXT *>(&displayEventInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkFence *>(&m_fence)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkRegisterDisplayEventEXT");
}
}
Fence(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkFence fence,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_fence(fence)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
Fence(std::nullptr_t) {}
~Fence()
{
clear();
}
Fence() = delete;
Fence(Fence const &) = delete;
Fence(Fence &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_fence(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_fence, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Fence &operator=(Fence const &) = delete;
Fence &operator=(Fence &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_fence = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_fence, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Fence const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_fence;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_fence)
{
getDispatcher()->vkDestroyFence(
static_cast<VkDevice>(m_device), static_cast<VkFence>(m_fence), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_fence = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Fence &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_fence, rhs.m_fence);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::Fence m_fence = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Framebuffer
{
public:
using CType = VkFramebuffer;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer;
public:
Framebuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateFramebuffer(static_cast<VkDevice>(*device),
reinterpret_cast<const VkFramebufferCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkFramebuffer *>(&m_framebuffer)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateFramebuffer");
}
}
Framebuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkFramebuffer framebuffer,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_framebuffer(framebuffer)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
Framebuffer(std::nullptr_t) {}
~Framebuffer()
{
clear();
}
Framebuffer() = delete;
Framebuffer(Framebuffer const &) = delete;
Framebuffer(Framebuffer &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_framebuffer(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_framebuffer, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Framebuffer &operator=(Framebuffer const &) = delete;
Framebuffer &operator=(Framebuffer &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_framebuffer = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_framebuffer, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Framebuffer const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_framebuffer;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_framebuffer)
{
getDispatcher()->vkDestroyFramebuffer(
static_cast<VkDevice>(m_device), static_cast<VkFramebuffer>(m_framebuffer), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_framebuffer = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Framebuffer &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_framebuffer, rhs.m_framebuffer);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::Framebuffer m_framebuffer = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Image
{
public:
using CType = VkImage;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage;
public:
Image(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::ImageCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkCreateImage(static_cast<VkDevice>(*device),
reinterpret_cast<const VkImageCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkImage *>(&m_image)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateImage");
}
}
Image(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkImage image,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_image(image)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
Image(std::nullptr_t) {}
~Image()
{
clear();
}
Image() = delete;
Image(Image const &) = delete;
Image(Image &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_image(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_image, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Image &operator=(Image const &) = delete;
Image &operator=(Image &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_image = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_image, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Image const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_image;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_image)
{
getDispatcher()->vkDestroyImage(
static_cast<VkDevice>(m_device), static_cast<VkImage>(m_image), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_image = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Image &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_image, rhs.m_image);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
void bindMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getMemoryRequirements() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> getSparseMemoryRequirements() const VULKAN_HPP_NOEXCEPT;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout
getSubresourceLayout(const VULKAN_HPP_NAMESPACE::ImageSubresource &subresource) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_image_drm_format_modifier ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT getDrmFormatModifierPropertiesEXT() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::Image m_image = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class ImageView
{
public:
using CType = VkImageView;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView;
public:
ImageView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkCreateImageView(static_cast<VkDevice>(*device),
reinterpret_cast<const VkImageViewCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkImageView *>(&m_imageView)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateImageView");
}
}
ImageView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkImageView imageView,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_imageView(imageView)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
ImageView(std::nullptr_t) {}
~ImageView()
{
clear();
}
ImageView() = delete;
ImageView(ImageView const &) = delete;
ImageView(ImageView &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_imageView(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_imageView, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
ImageView &operator=(ImageView const &) = delete;
ImageView &operator=(ImageView &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_imageView = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_imageView, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::ImageView const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_imageView;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_imageView)
{
getDispatcher()->vkDestroyImageView(
static_cast<VkDevice>(m_device), static_cast<VkImageView>(m_imageView), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_imageView = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ImageView &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_imageView, rhs.m_imageView);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_NVX_image_view_handle ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX getAddressNVX() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::ImageView m_imageView = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class IndirectCommandsLayoutNV
{
public:
using CType = VkIndirectCommandsLayoutNV;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
IndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateIndirectCommandsLayoutNV(static_cast<VkDevice>(*device),
reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkIndirectCommandsLayoutNV *>(&m_indirectCommandsLayout)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateIndirectCommandsLayoutNV");
}
}
IndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkIndirectCommandsLayoutNV indirectCommandsLayout,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_indirectCommandsLayout(indirectCommandsLayout)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
IndirectCommandsLayoutNV(std::nullptr_t) {}
~IndirectCommandsLayoutNV()
{
clear();
}
IndirectCommandsLayoutNV() = delete;
IndirectCommandsLayoutNV(IndirectCommandsLayoutNV const &) = delete;
IndirectCommandsLayoutNV(IndirectCommandsLayoutNV &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_indirectCommandsLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_indirectCommandsLayout, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
IndirectCommandsLayoutNV &operator=(IndirectCommandsLayoutNV const &) = delete;
IndirectCommandsLayoutNV &operator=(IndirectCommandsLayoutNV &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_indirectCommandsLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_indirectCommandsLayout, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_indirectCommandsLayout;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_indirectCommandsLayout)
{
getDispatcher()->vkDestroyIndirectCommandsLayoutNV(static_cast<VkDevice>(m_device),
static_cast<VkIndirectCommandsLayoutNV>(m_indirectCommandsLayout),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_indirectCommandsLayout = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_indirectCommandsLayout, rhs.m_indirectCommandsLayout);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV m_indirectCommandsLayout = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class PerformanceConfigurationINTEL
{
public:
using CType = VkPerformanceConfigurationINTEL;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
PerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const &acquireInfo)
: m_device(*device)
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkAcquirePerformanceConfigurationINTEL(static_cast<VkDevice>(*device),
reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>(&acquireInfo),
reinterpret_cast<VkPerformanceConfigurationINTEL *>(&m_configuration)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkAcquirePerformanceConfigurationINTEL");
}
}
PerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device, VkPerformanceConfigurationINTEL configuration)
: m_device(*device)
, m_configuration(configuration)
, m_dispatcher(device.getDispatcher())
{
}
PerformanceConfigurationINTEL(std::nullptr_t) {}
~PerformanceConfigurationINTEL()
{
clear();
}
PerformanceConfigurationINTEL() = delete;
PerformanceConfigurationINTEL(PerformanceConfigurationINTEL const &) = delete;
PerformanceConfigurationINTEL(PerformanceConfigurationINTEL &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_configuration(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_configuration, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
PerformanceConfigurationINTEL &operator=(PerformanceConfigurationINTEL const &) = delete;
PerformanceConfigurationINTEL &operator=(PerformanceConfigurationINTEL &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_configuration = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_configuration, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_configuration;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_configuration)
{
getDispatcher()->vkReleasePerformanceConfigurationINTEL(static_cast<VkDevice>(m_device),
static_cast<VkPerformanceConfigurationINTEL>(m_configuration));
}
m_device = nullptr;
m_configuration = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_configuration, rhs.m_configuration);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL m_configuration = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class PipelineCache
{
public:
using CType = VkPipelineCache;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache;
public:
PipelineCache(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreatePipelineCache(static_cast<VkDevice>(*device),
reinterpret_cast<const VkPipelineCacheCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkPipelineCache *>(&m_pipelineCache)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreatePipelineCache");
}
}
PipelineCache(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkPipelineCache pipelineCache,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_pipelineCache(pipelineCache)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
PipelineCache(std::nullptr_t) {}
~PipelineCache()
{
clear();
}
PipelineCache() = delete;
PipelineCache(PipelineCache const &) = delete;
PipelineCache(PipelineCache &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_pipelineCache(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_pipelineCache, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
PipelineCache &operator=(PipelineCache const &) = delete;
PipelineCache &operator=(PipelineCache &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_pipelineCache = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_pipelineCache, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::PipelineCache const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_pipelineCache;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_pipelineCache)
{
getDispatcher()->vkDestroyPipelineCache(static_cast<VkDevice>(m_device),
static_cast<VkPipelineCache>(m_pipelineCache),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_pipelineCache = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_pipelineCache, rhs.m_pipelineCache);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const;
void merge(ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const &srcCaches) const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::PipelineCache m_pipelineCache = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Pipeline
{
public:
using CType = VkPipeline;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline;
public:
Pipeline(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &pipelineCache,
VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkCreateComputePipelines(static_cast<VkDevice>(*device),
pipelineCache ? static_cast<VkPipelineCache>(**pipelineCache) : 0,
1,
reinterpret_cast<const VkComputePipelineCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkPipeline *>(&m_pipeline)));
if((m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess) &&
(m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT))
{
throwResultException(m_constructorSuccessCode, "vkCreateComputePipelines");
}
}
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)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkCreateGraphicsPipelines(static_cast<VkDevice>(*device),
pipelineCache ? static_cast<VkPipelineCache>(**pipelineCache) : 0,
1,
reinterpret_cast<const VkGraphicsPipelineCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkPipeline *>(&m_pipeline)));
if((m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess) &&
(m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT))
{
throwResultException(m_constructorSuccessCode, "vkCreateGraphicsPipelines");
}
}
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)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkCreateRayTracingPipelinesKHR(static_cast<VkDevice>(*device),
deferredOperation ? static_cast<VkDeferredOperationKHR>(**deferredOperation) : 0,
pipelineCache ? static_cast<VkPipelineCache>(**pipelineCache) : 0,
1,
reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkPipeline *>(&m_pipeline)));
if((m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess) &&
(m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR) &&
(m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR) &&
(m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT))
{
throwResultException(m_constructorSuccessCode, "vkCreateRayTracingPipelinesKHR");
}
}
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)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
m_constructorSuccessCode = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkCreateRayTracingPipelinesNV(static_cast<VkDevice>(*device),
pipelineCache ? static_cast<VkPipelineCache>(**pipelineCache) : 0,
1,
reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkPipeline *>(&m_pipeline)));
if((m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::eSuccess) &&
(m_constructorSuccessCode != VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT))
{
throwResultException(m_constructorSuccessCode, "vkCreateRayTracingPipelinesNV");
}
}
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)
: m_device(*device)
, m_pipeline(pipeline)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_constructorSuccessCode(successCode)
, m_dispatcher(device.getDispatcher())
{
}
Pipeline(std::nullptr_t) {}
~Pipeline()
{
clear();
}
Pipeline() = delete;
Pipeline(Pipeline const &) = delete;
Pipeline(Pipeline &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_pipeline(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_pipeline, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Pipeline &operator=(Pipeline const &) = delete;
Pipeline &operator=(Pipeline &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_pipeline = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_pipeline, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Pipeline const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_pipeline;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_pipeline)
{
getDispatcher()->vkDestroyPipeline(
static_cast<VkDevice>(m_device), static_cast<VkPipeline>(m_pipeline), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_pipeline = nullptr;
m_allocator = nullptr;
m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::Result::eErrorUnknown;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Result getConstructorSuccessCode() const
{
return m_constructorSuccessCode;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_pipeline, rhs.m_pipeline);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_constructorSuccessCode, rhs.m_constructorSuccessCode);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_AMD_shader_info ===
VULKAN_HPP_NODISCARD std::vector<uint8_t> getShaderInfoAMD(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,
VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType) const;
//=== VK_NV_ray_tracing ===
template<typename DataType>
VULKAN_HPP_NODISCARD std::vector<DataType> getRayTracingShaderGroupHandlesNV(uint32_t firstGroup, uint32_t groupCount, size_t dataSize) const;
template<typename DataType>
VULKAN_HPP_NODISCARD DataType getRayTracingShaderGroupHandleNV(uint32_t firstGroup, uint32_t groupCount) const;
void compileDeferredNV(uint32_t shader) const;
//=== VK_KHR_ray_tracing_pipeline ===
template<typename DataType>
VULKAN_HPP_NODISCARD std::vector<DataType> getRayTracingShaderGroupHandlesKHR(uint32_t firstGroup, uint32_t groupCount, size_t dataSize) const;
template<typename DataType>
VULKAN_HPP_NODISCARD DataType getRayTracingShaderGroupHandleKHR(uint32_t firstGroup, uint32_t groupCount) const;
template<typename DataType>
VULKAN_HPP_NODISCARD std::vector<DataType>
getRayTracingCaptureReplayShaderGroupHandlesKHR(uint32_t firstGroup, uint32_t groupCount, size_t dataSize) const;
template<typename DataType>
VULKAN_HPP_NODISCARD DataType getRayTracingCaptureReplayShaderGroupHandleKHR(uint32_t firstGroup, uint32_t groupCount) const;
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize
getRayTracingShaderGroupStackSizeKHR(uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader) const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::Pipeline m_pipeline = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::Result m_constructorSuccessCode = VULKAN_HPP_NAMESPACE::Result::eErrorUnknown;
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Pipelines : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Pipeline>
{
public:
Pipelines(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineCache> const &pipelineCache,
VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const &createInfos,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *dispatcher = device.getDispatcher();
std::vector<VkPipeline> pipelines(createInfos.size());
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(dispatcher->vkCreateComputePipelines(
static_cast<VkDevice>(*device),
pipelineCache ? static_cast<VkPipelineCache>(**pipelineCache) : 0,
createInfos.size(),
reinterpret_cast<const VkComputePipelineCreateInfo *>(createInfos.data()),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)),
pipelines.data()));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) || (result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT))
{
this->reserve(createInfos.size());
for(auto const &pipeline : pipelines)
{
this->emplace_back(device, pipeline, allocator, result);
}
}
else
{
throwResultException(result, "vkCreateComputePipelines");
}
}
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)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *dispatcher = device.getDispatcher();
std::vector<VkPipeline> pipelines(createInfos.size());
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(dispatcher->vkCreateGraphicsPipelines(
static_cast<VkDevice>(*device),
pipelineCache ? static_cast<VkPipelineCache>(**pipelineCache) : 0,
createInfos.size(),
reinterpret_cast<const VkGraphicsPipelineCreateInfo *>(createInfos.data()),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)),
pipelines.data()));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) || (result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT))
{
this->reserve(createInfos.size());
for(auto const &pipeline : pipelines)
{
this->emplace_back(device, pipeline, allocator, result);
}
}
else
{
throwResultException(result, "vkCreateGraphicsPipelines");
}
}
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)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *dispatcher = device.getDispatcher();
std::vector<VkPipeline> pipelines(createInfos.size());
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(dispatcher->vkCreateRayTracingPipelinesKHR(
static_cast<VkDevice>(*device),
deferredOperation ? static_cast<VkDeferredOperationKHR>(**deferredOperation) : 0,
pipelineCache ? static_cast<VkPipelineCache>(**pipelineCache) : 0,
createInfos.size(),
reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>(createInfos.data()),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)),
pipelines.data()));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) || (result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR) ||
(result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR) || (result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT))
{
this->reserve(createInfos.size());
for(auto const &pipeline : pipelines)
{
this->emplace_back(device, pipeline, allocator, result);
}
}
else
{
throwResultException(result, "vkCreateRayTracingPipelinesKHR");
}
}
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)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *dispatcher = device.getDispatcher();
std::vector<VkPipeline> pipelines(createInfos.size());
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(dispatcher->vkCreateRayTracingPipelinesNV(
static_cast<VkDevice>(*device),
pipelineCache ? static_cast<VkPipelineCache>(**pipelineCache) : 0,
createInfos.size(),
reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>(createInfos.data()),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)),
pipelines.data()));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) || (result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT))
{
this->reserve(createInfos.size());
for(auto const &pipeline : pipelines)
{
this->emplace_back(device, pipeline, allocator, result);
}
}
else
{
throwResultException(result, "vkCreateRayTracingPipelinesNV");
}
}
Pipelines(std::nullptr_t) {}
Pipelines() = delete;
Pipelines(Pipelines const &) = delete;
Pipelines(Pipelines &&rhs) = default;
Pipelines &operator=(Pipelines const &) = delete;
Pipelines &operator=(Pipelines &&rhs) = default;
};
class PipelineLayout
{
public:
using CType = VkPipelineLayout;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout;
public:
PipelineLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreatePipelineLayout(static_cast<VkDevice>(*device),
reinterpret_cast<const VkPipelineLayoutCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkPipelineLayout *>(&m_pipelineLayout)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreatePipelineLayout");
}
}
PipelineLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkPipelineLayout pipelineLayout,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_pipelineLayout(pipelineLayout)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
PipelineLayout(std::nullptr_t) {}
~PipelineLayout()
{
clear();
}
PipelineLayout() = delete;
PipelineLayout(PipelineLayout const &) = delete;
PipelineLayout(PipelineLayout &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_pipelineLayout(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_pipelineLayout, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
PipelineLayout &operator=(PipelineLayout const &) = delete;
PipelineLayout &operator=(PipelineLayout &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_pipelineLayout = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_pipelineLayout, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::PipelineLayout const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_pipelineLayout;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_pipelineLayout)
{
getDispatcher()->vkDestroyPipelineLayout(static_cast<VkDevice>(m_device),
static_cast<VkPipelineLayout>(m_pipelineLayout),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_pipelineLayout = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PipelineLayout &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_pipelineLayout, rhs.m_pipelineLayout);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::PipelineLayout m_pipelineLayout = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class PrivateDataSlot
{
public:
using CType = VkPrivateDataSlot;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlot;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
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)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreatePrivateDataSlot(static_cast<VkDevice>(*device),
reinterpret_cast<const VkPrivateDataSlotCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkPrivateDataSlot *>(&m_privateDataSlot)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreatePrivateDataSlot");
}
}
PrivateDataSlot(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkPrivateDataSlot privateDataSlot,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_privateDataSlot(privateDataSlot)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
PrivateDataSlot(std::nullptr_t) {}
~PrivateDataSlot()
{
clear();
}
PrivateDataSlot() = delete;
PrivateDataSlot(PrivateDataSlot const &) = delete;
PrivateDataSlot(PrivateDataSlot &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_privateDataSlot(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_privateDataSlot, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
PrivateDataSlot &operator=(PrivateDataSlot const &) = delete;
PrivateDataSlot &operator=(PrivateDataSlot &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_privateDataSlot = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_privateDataSlot, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::PrivateDataSlot const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_privateDataSlot;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_privateDataSlot)
{
getDispatcher()->vkDestroyPrivateDataSlot(static_cast<VkDevice>(m_device),
static_cast<VkPrivateDataSlot>(m_privateDataSlot),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_privateDataSlot = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_privateDataSlot, rhs.m_privateDataSlot);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::PrivateDataSlot m_privateDataSlot = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class QueryPool
{
public:
using CType = VkQueryPool;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool;
public:
QueryPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkCreateQueryPool(static_cast<VkDevice>(*device),
reinterpret_cast<const VkQueryPoolCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkQueryPool *>(&m_queryPool)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateQueryPool");
}
}
QueryPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkQueryPool queryPool,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_queryPool(queryPool)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
QueryPool(std::nullptr_t) {}
~QueryPool()
{
clear();
}
QueryPool() = delete;
QueryPool(QueryPool const &) = delete;
QueryPool(QueryPool &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_queryPool(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_queryPool, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
QueryPool &operator=(QueryPool const &) = delete;
QueryPool &operator=(QueryPool &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_queryPool = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_queryPool, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::QueryPool const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_queryPool;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_queryPool)
{
getDispatcher()->vkDestroyQueryPool(
static_cast<VkDevice>(m_device), static_cast<VkQueryPool>(m_queryPool), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_queryPool = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::QueryPool &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_queryPool, rhs.m_queryPool);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
template<typename DataType>
VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, std::vector<DataType>>
getResults(uint32_t firstQuery,
uint32_t queryCount,
size_t dataSize,
VULKAN_HPP_NAMESPACE::DeviceSize stride,
VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
template<typename DataType>
VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, DataType>
getResult(uint32_t firstQuery,
uint32_t queryCount,
VULKAN_HPP_NAMESPACE::DeviceSize stride,
VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
//=== VK_VERSION_1_2 ===
void reset(uint32_t firstQuery, uint32_t queryCount) const VULKAN_HPP_NOEXCEPT;
//=== VK_EXT_host_query_reset ===
void resetEXT(uint32_t firstQuery, uint32_t queryCount) const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::QueryPool m_queryPool = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Queue
{
public:
using CType = VkQueue;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue;
public:
Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device, uint32_t queueFamilyIndex, uint32_t queueIndex)
: m_dispatcher(device.getDispatcher())
{
getDispatcher()->vkGetDeviceQueue(static_cast<VkDevice>(*device), queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>(&m_queue));
}
Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device, VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const &queueInfo)
: m_dispatcher(device.getDispatcher())
{
getDispatcher()->vkGetDeviceQueue2(
static_cast<VkDevice>(*device), reinterpret_cast<const VkDeviceQueueInfo2 *>(&queueInfo), reinterpret_cast<VkQueue *>(&m_queue));
}
Queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device, VkQueue queue)
: m_queue(queue)
, m_dispatcher(device.getDispatcher())
{
}
Queue(std::nullptr_t) {}
~Queue()
{
clear();
}
Queue() = delete;
Queue(Queue const &rhs)
: m_queue(rhs.m_queue)
, m_dispatcher(rhs.m_dispatcher)
{}
Queue(Queue &&rhs) VULKAN_HPP_NOEXCEPT
: m_queue(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_queue, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Queue &operator=(Queue const &rhs)
{
m_queue = rhs.m_queue;
m_dispatcher = rhs.m_dispatcher;
return *this;
}
Queue &operator=(Queue &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
m_queue = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_queue, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Queue const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_queue;
}
void clear() VULKAN_HPP_NOEXCEPT
{
m_queue = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Queue &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_queue, rhs.m_queue);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
void submit(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const &submits,
VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
void waitIdle() const;
void bindSparse(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const &bindInfo,
VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
//=== VK_VERSION_1_3 ===
void submit2(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const &submits,
VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
//=== VK_KHR_swapchain ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR &presentInfo) const;
//=== VK_EXT_debug_utils ===
void beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT &labelInfo) const VULKAN_HPP_NOEXCEPT;
void endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT;
void insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT &labelInfo) const VULKAN_HPP_NOEXCEPT;
//=== VK_NV_device_diagnostic_checkpoints ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> getCheckpointDataNV() const VULKAN_HPP_NOEXCEPT;
//=== VK_INTEL_performance_query ===
void setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration) const;
//=== VK_KHR_synchronization2 ===
void submit2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const &submits,
VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> getCheckpointData2NV() const VULKAN_HPP_NOEXCEPT;
private:
VULKAN_HPP_NAMESPACE::Queue m_queue = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class RenderPass
{
public:
using CType = VkRenderPass;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass;
public:
RenderPass(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateRenderPass(static_cast<VkDevice>(*device),
reinterpret_cast<const VkRenderPassCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkRenderPass *>(&m_renderPass)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateRenderPass");
}
}
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)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateRenderPass2(static_cast<VkDevice>(*device),
reinterpret_cast<const VkRenderPassCreateInfo2 *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkRenderPass *>(&m_renderPass)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateRenderPass2");
}
}
RenderPass(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkRenderPass renderPass,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_renderPass(renderPass)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
RenderPass(std::nullptr_t) {}
~RenderPass()
{
clear();
}
RenderPass() = delete;
RenderPass(RenderPass const &) = delete;
RenderPass(RenderPass &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_renderPass(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_renderPass, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
RenderPass &operator=(RenderPass const &) = delete;
RenderPass &operator=(RenderPass &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_renderPass = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_renderPass, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::RenderPass const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_renderPass;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_renderPass)
{
getDispatcher()->vkDestroyRenderPass(
static_cast<VkDevice>(m_device), static_cast<VkRenderPass>(m_renderPass), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_renderPass = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::RenderPass &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_renderPass, rhs.m_renderPass);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT;
//=== VK_HUAWEI_subpass_shading ===
VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, VULKAN_HPP_NAMESPACE::Extent2D> getSubpassShadingMaxWorkgroupSizeHUAWEI() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::RenderPass m_renderPass = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Sampler
{
public:
using CType = VkSampler;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler;
public:
Sampler(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::SamplerCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkCreateSampler(static_cast<VkDevice>(*device),
reinterpret_cast<const VkSamplerCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSampler *>(&m_sampler)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateSampler");
}
}
Sampler(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkSampler sampler,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_sampler(sampler)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
Sampler(std::nullptr_t) {}
~Sampler()
{
clear();
}
Sampler() = delete;
Sampler(Sampler const &) = delete;
Sampler(Sampler &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_sampler(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_sampler, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Sampler &operator=(Sampler const &) = delete;
Sampler &operator=(Sampler &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_sampler = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_sampler, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Sampler const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_sampler;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_sampler)
{
getDispatcher()->vkDestroySampler(
static_cast<VkDevice>(m_device), static_cast<VkSampler>(m_sampler), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_sampler = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Sampler &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_sampler, rhs.m_sampler);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::Sampler m_sampler = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class SamplerYcbcrConversion
{
public:
using CType = VkSamplerYcbcrConversion;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion;
public:
SamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateSamplerYcbcrConversion(static_cast<VkDevice>(*device),
reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSamplerYcbcrConversion *>(&m_ycbcrConversion)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateSamplerYcbcrConversion");
}
}
SamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkSamplerYcbcrConversion ycbcrConversion,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_ycbcrConversion(ycbcrConversion)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
SamplerYcbcrConversion(std::nullptr_t) {}
~SamplerYcbcrConversion()
{
clear();
}
SamplerYcbcrConversion() = delete;
SamplerYcbcrConversion(SamplerYcbcrConversion const &) = delete;
SamplerYcbcrConversion(SamplerYcbcrConversion &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_ycbcrConversion(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_ycbcrConversion, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
SamplerYcbcrConversion &operator=(SamplerYcbcrConversion const &) = delete;
SamplerYcbcrConversion &operator=(SamplerYcbcrConversion &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_ycbcrConversion = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_ycbcrConversion, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_ycbcrConversion;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_ycbcrConversion)
{
getDispatcher()->vkDestroySamplerYcbcrConversion(static_cast<VkDevice>(m_device),
static_cast<VkSamplerYcbcrConversion>(m_ycbcrConversion),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_ycbcrConversion = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_ycbcrConversion, rhs.m_ycbcrConversion);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion m_ycbcrConversion = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class Semaphore
{
public:
using CType = VkSemaphore;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore;
public:
Semaphore(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(device.getDispatcher()->vkCreateSemaphore(static_cast<VkDevice>(*device),
reinterpret_cast<const VkSemaphoreCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSemaphore *>(&m_semaphore)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateSemaphore");
}
}
Semaphore(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkSemaphore semaphore,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_semaphore(semaphore)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
Semaphore(std::nullptr_t) {}
~Semaphore()
{
clear();
}
Semaphore() = delete;
Semaphore(Semaphore const &) = delete;
Semaphore(Semaphore &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_semaphore(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_semaphore, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
Semaphore &operator=(Semaphore const &) = delete;
Semaphore &operator=(Semaphore &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_semaphore = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_semaphore, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::Semaphore const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_semaphore;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_semaphore)
{
getDispatcher()->vkDestroySemaphore(
static_cast<VkDevice>(m_device), static_cast<VkSemaphore>(m_semaphore), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_semaphore = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Semaphore &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_semaphore, rhs.m_semaphore);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_VERSION_1_2 ===
VULKAN_HPP_NODISCARD uint64_t getCounterValue() const;
//=== VK_KHR_timeline_semaphore ===
VULKAN_HPP_NODISCARD uint64_t getCounterValueKHR() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::Semaphore m_semaphore = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class ShaderModule
{
public:
using CType = VkShaderModule;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule;
public:
ShaderModule(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateShaderModule(static_cast<VkDevice>(*device),
reinterpret_cast<const VkShaderModuleCreateInfo *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkShaderModule *>(&m_shaderModule)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateShaderModule");
}
}
ShaderModule(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkShaderModule shaderModule,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_shaderModule(shaderModule)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
ShaderModule(std::nullptr_t) {}
~ShaderModule()
{
clear();
}
ShaderModule() = delete;
ShaderModule(ShaderModule const &) = delete;
ShaderModule(ShaderModule &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_shaderModule(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_shaderModule, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
ShaderModule &operator=(ShaderModule const &) = delete;
ShaderModule &operator=(ShaderModule &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_shaderModule = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_shaderModule, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::ShaderModule const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_shaderModule;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_shaderModule)
{
getDispatcher()->vkDestroyShaderModule(
static_cast<VkDevice>(m_device), static_cast<VkShaderModule>(m_shaderModule), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_shaderModule = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ShaderModule &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_shaderModule, rhs.m_shaderModule);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::ShaderModule m_shaderModule = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class SurfaceKHR
{
public:
using CType = VkSurfaceKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR;
public:
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateAndroidSurfaceKHR(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateAndroidSurfaceKHR");
}
}
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateDirectFBSurfaceEXT(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDirectFBSurfaceEXT");
}
}
# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateDisplayPlaneSurfaceKHR(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateDisplayPlaneSurfaceKHR");
}
}
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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateHeadlessSurfaceEXT(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateHeadlessSurfaceEXT");
}
}
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateIOSSurfaceMVK(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateIOSSurfaceMVK");
}
}
# endif /*VK_USE_PLATFORM_IOS_MVK*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateImagePipeSurfaceFUCHSIA(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateImagePipeSurfaceFUCHSIA");
}
}
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateMacOSSurfaceMVK(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateMacOSSurfaceMVK");
}
}
# endif /*VK_USE_PLATFORM_MACOS_MVK*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateMetalSurfaceEXT(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateMetalSurfaceEXT");
}
}
# endif /*VK_USE_PLATFORM_METAL_EXT*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateScreenSurfaceQNX(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateScreenSurfaceQNX");
}
}
# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateStreamDescriptorSurfaceGGP(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateStreamDescriptorSurfaceGGP");
}
}
# endif /*VK_USE_PLATFORM_GGP*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateViSurfaceNN(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkViSurfaceCreateInfoNN *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateViSurfaceNN");
}
}
# endif /*VK_USE_PLATFORM_VI_NN*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateWaylandSurfaceKHR(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateWaylandSurfaceKHR");
}
}
# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateWin32SurfaceKHR(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateWin32SurfaceKHR");
}
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateXcbSurfaceKHR(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateXcbSurfaceKHR");
}
}
# endif /*VK_USE_PLATFORM_XCB_KHR*/
# 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)
: m_instance(*instance)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
instance.getDispatcher()->vkCreateXlibSurfaceKHR(static_cast<VkInstance>(*instance),
reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSurfaceKHR *>(&m_surface)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateXlibSurfaceKHR");
}
}
# endif /*VK_USE_PLATFORM_XLIB_KHR*/
SurfaceKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Instance const &instance,
VkSurfaceKHR surface,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_instance(*instance)
, m_surface(surface)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(instance.getDispatcher())
{
}
SurfaceKHR(std::nullptr_t) {}
~SurfaceKHR()
{
clear();
}
SurfaceKHR() = delete;
SurfaceKHR(SurfaceKHR const &) = delete;
SurfaceKHR(SurfaceKHR &&rhs) VULKAN_HPP_NOEXCEPT
: m_instance(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_instance, {})),
m_surface(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_surface, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
SurfaceKHR &operator=(SurfaceKHR const &) = delete;
SurfaceKHR &operator=(SurfaceKHR &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_instance = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_instance, {});
m_surface = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_surface, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::SurfaceKHR const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_surface;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_surface)
{
getDispatcher()->vkDestroySurfaceKHR(
static_cast<VkInstance>(m_instance), static_cast<VkSurfaceKHR>(m_surface), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_instance = nullptr;
m_surface = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Instance getInstance() const
{
return m_instance;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_instance, rhs.m_instance);
std::swap(m_surface, rhs.m_surface);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
private:
VULKAN_HPP_NAMESPACE::Instance m_instance = {};
VULKAN_HPP_NAMESPACE::SurfaceKHR m_surface = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::InstanceDispatcher const *m_dispatcher = nullptr;
};
class SwapchainKHR
{
public:
using CType = VkSwapchainKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR;
public:
SwapchainKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateSwapchainKHR(static_cast<VkDevice>(*device),
reinterpret_cast<const VkSwapchainCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkSwapchainKHR *>(&m_swapchain)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateSwapchainKHR");
}
}
SwapchainKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkSwapchainKHR swapchain,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_swapchain(swapchain)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
SwapchainKHR(std::nullptr_t) {}
~SwapchainKHR()
{
clear();
}
SwapchainKHR() = delete;
SwapchainKHR(SwapchainKHR const &) = delete;
SwapchainKHR(SwapchainKHR &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_swapchain(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_swapchain, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
SwapchainKHR &operator=(SwapchainKHR const &) = delete;
SwapchainKHR &operator=(SwapchainKHR &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_swapchain = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_swapchain, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::SwapchainKHR const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_swapchain;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_swapchain)
{
getDispatcher()->vkDestroySwapchainKHR(
static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain), reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_swapchain = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_swapchain, rhs.m_swapchain);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_KHR_swapchain ===
VULKAN_HPP_NODISCARD std::vector<VkImage> getImages() const;
VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t>
acquireNextImage(uint64_t timeout,
VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT,
VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT) const;
//=== VK_EXT_display_control ===
VULKAN_HPP_NODISCARD uint64_t getCounterEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter) const;
//=== VK_GOOGLE_display_timing ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE getRefreshCycleDurationGOOGLE() const;
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> getPastPresentationTimingGOOGLE() const;
//=== VK_KHR_shared_presentable_image ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result getStatus() const;
//=== VK_AMD_display_native_hdr ===
void setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable) const VULKAN_HPP_NOEXCEPT;
//=== VK_KHR_present_wait ===
VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Result waitForPresent(uint64_t presentId, uint64_t timeout) const;
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_EXT_full_screen_exclusive ===
void acquireFullScreenExclusiveModeEXT() const;
void releaseFullScreenExclusiveModeEXT() const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::SwapchainKHR m_swapchain = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
class SwapchainKHRs : public std::vector<VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>
{
public:
SwapchainKHRs(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
{
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *dispatcher = device.getDispatcher();
std::vector<VkSwapchainKHR> swapchains(createInfos.size());
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(dispatcher->vkCreateSharedSwapchainsKHR(
static_cast<VkDevice>(*device),
createInfos.size(),
reinterpret_cast<const VkSwapchainCreateInfoKHR *>(createInfos.data()),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)),
swapchains.data()));
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
this->reserve(createInfos.size());
for(auto const &swapchainKHR : swapchains)
{
this->emplace_back(device, swapchainKHR, allocator);
}
}
else
{
throwResultException(result, "vkCreateSharedSwapchainsKHR");
}
}
SwapchainKHRs(std::nullptr_t) {}
SwapchainKHRs() = delete;
SwapchainKHRs(SwapchainKHRs const &) = delete;
SwapchainKHRs(SwapchainKHRs &&rhs) = default;
SwapchainKHRs &operator=(SwapchainKHRs const &) = delete;
SwapchainKHRs &operator=(SwapchainKHRs &&rhs) = default;
};
class ValidationCacheEXT
{
public:
using CType = VkValidationCacheEXT;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT;
public:
ValidationCacheEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateValidationCacheEXT(static_cast<VkDevice>(*device),
reinterpret_cast<const VkValidationCacheCreateInfoEXT *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkValidationCacheEXT *>(&m_validationCache)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateValidationCacheEXT");
}
}
ValidationCacheEXT(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkValidationCacheEXT validationCache,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_validationCache(validationCache)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
ValidationCacheEXT(std::nullptr_t) {}
~ValidationCacheEXT()
{
clear();
}
ValidationCacheEXT() = delete;
ValidationCacheEXT(ValidationCacheEXT const &) = delete;
ValidationCacheEXT(ValidationCacheEXT &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_validationCache(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_validationCache, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
ValidationCacheEXT &operator=(ValidationCacheEXT const &) = delete;
ValidationCacheEXT &operator=(ValidationCacheEXT &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_validationCache = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_validationCache, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::ValidationCacheEXT const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_validationCache;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_validationCache)
{
getDispatcher()->vkDestroyValidationCacheEXT(static_cast<VkDevice>(m_device),
static_cast<VkValidationCacheEXT>(m_validationCache),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_validationCache = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_validationCache, rhs.m_validationCache);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_EXT_validation_cache ===
void merge(ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const &srcCaches) const;
VULKAN_HPP_NODISCARD std::vector<uint8_t> getData() const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::ValidationCacheEXT m_validationCache = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
# if defined(VK_ENABLE_BETA_EXTENSIONS)
class VideoSessionKHR
{
public:
using CType = VkVideoSessionKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
VideoSessionKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateVideoSessionKHR(static_cast<VkDevice>(*device),
reinterpret_cast<const VkVideoSessionCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkVideoSessionKHR *>(&m_videoSession)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateVideoSessionKHR");
}
}
VideoSessionKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkVideoSessionKHR videoSession,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_videoSession(videoSession)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
VideoSessionKHR(std::nullptr_t) {}
~VideoSessionKHR()
{
clear();
}
VideoSessionKHR() = delete;
VideoSessionKHR(VideoSessionKHR const &) = delete;
VideoSessionKHR(VideoSessionKHR &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_videoSession(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_videoSession, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
VideoSessionKHR &operator=(VideoSessionKHR const &) = delete;
VideoSessionKHR &operator=(VideoSessionKHR &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_videoSession = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_videoSession, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::VideoSessionKHR const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_videoSession;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_videoSession)
{
getDispatcher()->vkDestroyVideoSessionKHR(static_cast<VkDevice>(m_device),
static_cast<VkVideoSessionKHR>(m_videoSession),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_videoSession = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_videoSession, rhs.m_videoSession);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_KHR_video_queue ===
VULKAN_HPP_NODISCARD std::vector<VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR> getMemoryRequirements() const;
void bindMemory(ArrayProxy<const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR> const &videoSessionBindMemories) const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::VideoSessionKHR m_videoSession = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_ENABLE_BETA_EXTENSIONS)
class VideoSessionParametersKHR
{
public:
using CType = VkVideoSessionParametersKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eVideoSessionParametersKHR;
static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType =
VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown;
public:
VideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
device.getDispatcher()->vkCreateVideoSessionParametersKHR(static_cast<VkDevice>(*device),
reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>(&createInfo),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator),
reinterpret_cast<VkVideoSessionParametersKHR *>(&m_videoSessionParameters)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, "vkCreateVideoSessionParametersKHR");
}
}
VideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::Device const &device,
VkVideoSessionParametersKHR videoSessionParameters,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr)
: m_device(*device)
, m_videoSessionParameters(videoSessionParameters)
, m_allocator(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator))
, m_dispatcher(device.getDispatcher())
{
}
VideoSessionParametersKHR(std::nullptr_t) {}
~VideoSessionParametersKHR()
{
clear();
}
VideoSessionParametersKHR() = delete;
VideoSessionParametersKHR(VideoSessionParametersKHR const &) = delete;
VideoSessionParametersKHR(VideoSessionParametersKHR &&rhs) VULKAN_HPP_NOEXCEPT
: m_device(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {})),
m_videoSessionParameters(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_videoSessionParameters, {})),
m_allocator(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {})),
m_dispatcher(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr))
{
}
VideoSessionParametersKHR &operator=(VideoSessionParametersKHR const &) = delete;
VideoSessionParametersKHR &operator=(VideoSessionParametersKHR &&rhs) VULKAN_HPP_NOEXCEPT
{
if(this != &rhs)
{
clear();
m_device = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_device, {});
m_videoSessionParameters = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_videoSessionParameters, {});
m_allocator = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_allocator, {});
m_dispatcher = VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::exchange(rhs.m_dispatcher, nullptr);
}
return *this;
}
VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const &operator*() const VULKAN_HPP_NOEXCEPT
{
return m_videoSessionParameters;
}
void clear() VULKAN_HPP_NOEXCEPT
{
if(m_videoSessionParameters)
{
getDispatcher()->vkDestroyVideoSessionParametersKHR(static_cast<VkDevice>(m_device),
static_cast<VkVideoSessionParametersKHR>(m_videoSessionParameters),
reinterpret_cast<const VkAllocationCallbacks *>(m_allocator));
}
m_device = nullptr;
m_videoSessionParameters = nullptr;
m_allocator = nullptr;
m_dispatcher = nullptr;
}
VULKAN_HPP_NAMESPACE::Device getDevice() const
{
return m_device;
}
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *getDispatcher() const
{
VULKAN_HPP_ASSERT(m_dispatcher->getVkHeaderVersion() == VK_HEADER_VERSION);
return m_dispatcher;
}
void swap(VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR &rhs) VULKAN_HPP_NOEXCEPT
{
std::swap(m_device, rhs.m_device);
std::swap(m_videoSessionParameters, rhs.m_videoSessionParameters);
std::swap(m_allocator, rhs.m_allocator);
std::swap(m_dispatcher, rhs.m_dispatcher);
}
//=== VK_KHR_video_queue ===
void update(const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR &updateInfo) const;
private:
VULKAN_HPP_NAMESPACE::Device m_device = {};
VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR m_videoSessionParameters = {};
const VULKAN_HPP_NAMESPACE::AllocationCallbacks *m_allocator = {};
VULKAN_HPP_NAMESPACE::VULKAN_HPP_RAII_NAMESPACE::DeviceDispatcher const *m_dispatcher = nullptr;
};
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//===========================
//=== COMMAND Definitions ===
//===========================
//=== VK_VERSION_1_0 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Instance
Context::createInstance(VULKAN_HPP_NAMESPACE::InstanceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Instance(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::PhysicalDevice> Instance::enumeratePhysicalDevices() const
{
return VULKAN_HPP_RAII_NAMESPACE::PhysicalDevices(*this);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
getDispatcher()->vkGetPhysicalDeviceFeatures(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceFeatures *>(&features));
return features;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties
PhysicalDevice::getFormatProperties(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
getDispatcher()->vkGetPhysicalDeviceFormatProperties(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkFormat>(format), reinterpret_cast<VkFormatProperties *>(&formatProperties));
return formatProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties
PhysicalDevice::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) const
{
VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceImageFormatProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkFormat>(format),
static_cast<VkImageType>(type),
static_cast<VkImageTiling>(tiling),
static_cast<VkImageUsageFlags>(usage),
static_cast<VkImageCreateFlags>(flags),
reinterpret_cast<VkImageFormatProperties *>(&imageFormatProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties");
}
return imageFormatProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
getDispatcher()->vkGetPhysicalDeviceProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceProperties *>(&properties));
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties>
PhysicalDevice::getQueueFamilyProperties() const VULKAN_HPP_NOEXCEPT
{
uint32_t queueFamilyPropertyCount;
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties(static_cast<VkPhysicalDevice>(m_physicalDevice), &queueFamilyPropertyCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties> queueFamilyProperties(queueFamilyPropertyCount);
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
&queueFamilyPropertyCount,
reinterpret_cast<VkQueueFamilyProperties *>(queueFamilyProperties.data()));
VULKAN_HPP_ASSERT(queueFamilyPropertyCount == queueFamilyProperties.size());
return queueFamilyProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
getDispatcher()->vkGetPhysicalDeviceMemoryProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceMemoryProperties *>(&memoryProperties));
return memoryProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr(const std::string &name) const VULKAN_HPP_NOEXCEPT
{
return getDispatcher()->vkGetInstanceProcAddr(static_cast<VkInstance>(m_instance), name.c_str());
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr(const std::string &name) const VULKAN_HPP_NOEXCEPT
{
return getDispatcher()->vkGetDeviceProcAddr(static_cast<VkDevice>(m_device), name.c_str());
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Device
PhysicalDevice::createDevice(VULKAN_HPP_NAMESPACE::DeviceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Device(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties>
Context::enumerateInstanceExtensionProperties(Optional<const std::string> layerName) const
{
std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkEnumerateInstanceExtensionProperties(layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEnumerateInstanceExtensionProperties(
layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceExtensionProperties");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties>
PhysicalDevice::enumerateDeviceExtensionProperties(Optional<const std::string> layerName) const
{
std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEnumerateDeviceExtensionProperties(
static_cast<VkPhysicalDevice>(m_physicalDevice), layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkEnumerateDeviceExtensionProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
layerName ? layerName->c_str() : nullptr,
&propertyCount,
reinterpret_cast<VkExtensionProperties *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> Context::enumerateInstanceLayerProperties() const
{
std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEnumerateInstanceLayerProperties(&propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkEnumerateInstanceLayerProperties(&propertyCount, reinterpret_cast<VkLayerProperties *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceLayerProperties");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> PhysicalDevice::enumerateDeviceLayerProperties() const
{
std::vector<VULKAN_HPP_NAMESPACE::LayerProperties> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkEnumerateDeviceLayerProperties(static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEnumerateDeviceLayerProperties(
static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, reinterpret_cast<VkLayerProperties *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Queue Device::getQueue(uint32_t queueFamilyIndex, uint32_t queueIndex) const
{
return VULKAN_HPP_RAII_NAMESPACE::Queue(*this, queueFamilyIndex, queueIndex);
}
VULKAN_HPP_INLINE void Queue::submit(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const &submits, VULKAN_HPP_NAMESPACE::Fence fence) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkQueueSubmit(
static_cast<VkQueue>(m_queue), submits.size(), reinterpret_cast<const VkSubmitInfo *>(submits.data()), static_cast<VkFence>(fence)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit");
}
}
VULKAN_HPP_INLINE void Queue::waitIdle() const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkQueueWaitIdle(static_cast<VkQueue>(m_queue)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle");
}
}
VULKAN_HPP_INLINE void Device::waitIdle() const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkDeviceWaitIdle(static_cast<VkDevice>(m_device)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DeviceMemory
Device::allocateMemory(VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const &allocateInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DeviceMemory(*this, allocateInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void *DeviceMemory::mapMemory(VULKAN_HPP_NAMESPACE::DeviceSize offset,
VULKAN_HPP_NAMESPACE::DeviceSize size,
VULKAN_HPP_NAMESPACE::MemoryMapFlags flags) const
{
void *pData;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkMapMemory(static_cast<VkDevice>(m_device),
static_cast<VkDeviceMemory>(m_memory),
static_cast<VkDeviceSize>(offset),
static_cast<VkDeviceSize>(size),
static_cast<VkMemoryMapFlags>(flags),
&pData));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::mapMemory");
}
return pData;
}
VULKAN_HPP_INLINE void DeviceMemory::unmapMemory() const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkUnmapMemory(static_cast<VkDevice>(m_device), static_cast<VkDeviceMemory>(m_memory));
}
VULKAN_HPP_INLINE void Device::flushMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const &memoryRanges) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkFlushMappedMemoryRanges(
static_cast<VkDevice>(m_device), memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>(memoryRanges.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges");
}
}
VULKAN_HPP_INLINE void Device::invalidateMappedMemoryRanges(ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const &memoryRanges) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkInvalidateMappedMemoryRanges(
static_cast<VkDevice>(m_device), memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>(memoryRanges.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize DeviceMemory::getCommitment() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
getDispatcher()->vkGetDeviceMemoryCommitment(
static_cast<VkDevice>(m_device), static_cast<VkDeviceMemory>(m_memory), reinterpret_cast<VkDeviceSize *>(&committedMemoryInBytes));
return committedMemoryInBytes;
}
VULKAN_HPP_INLINE void Buffer::bindMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset) const
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBindBufferMemory(static_cast<VkDevice>(m_device),
static_cast<VkBuffer>(m_buffer),
static_cast<VkDeviceMemory>(memory),
static_cast<VkDeviceSize>(memoryOffset)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Buffer::bindMemory");
}
}
VULKAN_HPP_INLINE void Image::bindMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset) const
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBindImageMemory(static_cast<VkDevice>(m_device),
static_cast<VkImage>(m_image),
static_cast<VkDeviceMemory>(memory),
static_cast<VkDeviceSize>(memoryOffset)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Image::bindMemory");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Buffer::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
getDispatcher()->vkGetBufferMemoryRequirements(
static_cast<VkDevice>(m_device), static_cast<VkBuffer>(m_buffer), reinterpret_cast<VkMemoryRequirements *>(&memoryRequirements));
return memoryRequirements;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Image::getMemoryRequirements() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
getDispatcher()->vkGetImageMemoryRequirements(
static_cast<VkDevice>(m_device), static_cast<VkImage>(m_image), reinterpret_cast<VkMemoryRequirements *>(&memoryRequirements));
return memoryRequirements;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements>
Image::getSparseMemoryRequirements() const VULKAN_HPP_NOEXCEPT
{
uint32_t sparseMemoryRequirementCount;
getDispatcher()->vkGetImageSparseMemoryRequirements(
static_cast<VkDevice>(m_device), static_cast<VkImage>(m_image), &sparseMemoryRequirementCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements> sparseMemoryRequirements(sparseMemoryRequirementCount);
getDispatcher()->vkGetImageSparseMemoryRequirements(static_cast<VkDevice>(m_device),
static_cast<VkImage>(m_image),
&sparseMemoryRequirementCount,
reinterpret_cast<VkSparseImageMemoryRequirements *>(sparseMemoryRequirements.data()));
VULKAN_HPP_ASSERT(sparseMemoryRequirementCount == sparseMemoryRequirements.size());
return sparseMemoryRequirements;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>
PhysicalDevice::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) const VULKAN_HPP_NOEXCEPT
{
uint32_t propertyCount;
getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkFormat>(format),
static_cast<VkImageType>(type),
static_cast<VkSampleCountFlagBits>(samples),
static_cast<VkImageUsageFlags>(usage),
static_cast<VkImageTiling>(tiling),
&propertyCount,
nullptr);
std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties> properties(propertyCount);
getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkFormat>(format),
static_cast<VkImageType>(type),
static_cast<VkSampleCountFlagBits>(samples),
static_cast<VkImageUsageFlags>(usage),
static_cast<VkImageTiling>(tiling),
&propertyCount,
reinterpret_cast<VkSparseImageFormatProperties *>(properties.data()));
VULKAN_HPP_ASSERT(propertyCount == properties.size());
return properties;
}
VULKAN_HPP_INLINE void Queue::bindSparse(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const &bindInfo, VULKAN_HPP_NAMESPACE::Fence fence) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkQueueBindSparse(
static_cast<VkQueue>(m_queue), bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>(bindInfo.data()), static_cast<VkFence>(fence)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Fence
Device::createFence(VULKAN_HPP_NAMESPACE::FenceCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Fence(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void Device::resetFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const &fences) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkResetFences(static_cast<VkDevice>(m_device), fences.size(), reinterpret_cast<const VkFence *>(fences.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Fence::getStatus() const
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetFenceStatus(static_cast<VkDevice>(m_device), static_cast<VkFence>(m_fence)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eNotReady))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Fence::getStatus");
}
return result;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
Device::waitForFences(ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const &fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkWaitForFences(
static_cast<VkDevice>(m_device), fences.size(), reinterpret_cast<const VkFence *>(fences.data()), static_cast<VkBool32>(waitAll), timeout));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eTimeout))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences");
}
return result;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Semaphore
Device::createSemaphore(VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Semaphore(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Event
Device::createEvent(VULKAN_HPP_NAMESPACE::EventCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Event(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Event::getStatus() const
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetEventStatus(static_cast<VkDevice>(m_device), static_cast<VkEvent>(m_event)));
if((result != VULKAN_HPP_NAMESPACE::Result::eEventSet) && (result != VULKAN_HPP_NAMESPACE::Result::eEventReset))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Event::getStatus");
}
return result;
}
VULKAN_HPP_INLINE void Event::set() const
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkSetEvent(static_cast<VkDevice>(m_device), static_cast<VkEvent>(m_event)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Event::set");
}
}
VULKAN_HPP_INLINE void Event::reset() const
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkResetEvent(static_cast<VkDevice>(m_device), static_cast<VkEvent>(m_event)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Event::reset");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::QueryPool
Device::createQueryPool(VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::QueryPool(*this, createInfo, allocator);
}
template<typename DataType>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, std::vector<DataType>> QueryPool::getResults(
uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags) const
{
VULKAN_HPP_ASSERT(dataSize % sizeof(DataType) == 0);
std::vector<DataType> data(dataSize / sizeof(DataType));
Result result = static_cast<Result>(getDispatcher()->vkGetQueryPoolResults(static_cast<VkDevice>(m_device),
static_cast<VkQueryPool>(m_queryPool),
firstQuery,
queryCount,
data.size() * sizeof(DataType),
reinterpret_cast<void *>(data.data()),
static_cast<VkDeviceSize>(stride),
static_cast<VkQueryResultFlags>(flags)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eNotReady))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResults");
}
return std::make_pair(result, data);
}
template<typename DataType>
VULKAN_HPP_NODISCARD std::pair<VULKAN_HPP_NAMESPACE::Result, DataType> QueryPool::getResult(uint32_t firstQuery,
uint32_t queryCount,
VULKAN_HPP_NAMESPACE::DeviceSize stride,
VULKAN_HPP_NAMESPACE::QueryResultFlags flags) const
{
DataType data;
Result result = static_cast<Result>(getDispatcher()->vkGetQueryPoolResults(static_cast<VkDevice>(m_device),
static_cast<VkQueryPool>(m_queryPool),
firstQuery,
queryCount,
sizeof(DataType),
reinterpret_cast<void *>(&data),
static_cast<VkDeviceSize>(stride),
static_cast<VkQueryResultFlags>(flags)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eNotReady))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::QueryPool::getResult");
}
return std::make_pair(result, data);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Buffer
Device::createBuffer(VULKAN_HPP_NAMESPACE::BufferCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Buffer(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::BufferView
Device::createBufferView(VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::BufferView(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Image
Device::createImage(VULKAN_HPP_NAMESPACE::ImageCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Image(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout
Image::getSubresourceLayout(const VULKAN_HPP_NAMESPACE::ImageSubresource &subresource) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
getDispatcher()->vkGetImageSubresourceLayout(static_cast<VkDevice>(m_device),
static_cast<VkImage>(m_image),
reinterpret_cast<const VkImageSubresource *>(&subresource),
reinterpret_cast<VkSubresourceLayout *>(&layout));
return layout;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::ImageView
Device::createImageView(VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::ImageView(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::ShaderModule
Device::createShaderModule(VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::ShaderModule(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PipelineCache
Device::createPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::PipelineCache(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> PipelineCache::getData() const
{
std::vector<uint8_t> data;
size_t dataSize;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPipelineCacheData(static_cast<VkDevice>(m_device), static_cast<VkPipelineCache>(m_pipelineCache), &dataSize, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && dataSize)
{
data.resize(dataSize);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPipelineCacheData(
static_cast<VkDevice>(m_device), static_cast<VkPipelineCache>(m_pipelineCache), &dataSize, reinterpret_cast<void *>(data.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::getData");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(dataSize <= data.size());
if(dataSize < data.size())
{
data.resize(dataSize);
}
}
return data;
}
VULKAN_HPP_INLINE void PipelineCache::merge(ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const &srcCaches) const
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkMergePipelineCaches(static_cast<VkDevice>(m_device),
static_cast<VkPipelineCache>(m_pipelineCache),
srcCaches.size(),
reinterpret_cast<const VkPipelineCache *>(srcCaches.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PipelineCache::merge");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Pipelines(*this, pipelineCache, createInfos, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Pipeline Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Pipeline(*this, pipelineCache, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Pipelines(*this, pipelineCache, createInfos, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Pipeline
Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Pipeline(*this, pipelineCache, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PipelineLayout
Device::createPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::PipelineLayout(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Sampler
Device::createSampler(VULKAN_HPP_NAMESPACE::SamplerCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Sampler(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout
Device::createDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DescriptorSetLayout(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DescriptorPool
Device::createDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DescriptorPool(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void DescriptorPool::reset(VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkResetDescriptorPool(
static_cast<VkDevice>(m_device), static_cast<VkDescriptorPool>(m_descriptorPool), static_cast<VkDescriptorPoolResetFlags>(flags));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::DescriptorSet>
Device::allocateDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const &allocateInfo) const
{
return VULKAN_HPP_RAII_NAMESPACE::DescriptorSets(*this, allocateInfo);
}
VULKAN_HPP_INLINE void
Device::updateDescriptorSets(ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const &descriptorWrites,
ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const &descriptorCopies) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkUpdateDescriptorSets(static_cast<VkDevice>(m_device),
descriptorWrites.size(),
reinterpret_cast<const VkWriteDescriptorSet *>(descriptorWrites.data()),
descriptorCopies.size(),
reinterpret_cast<const VkCopyDescriptorSet *>(descriptorCopies.data()));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Framebuffer
Device::createFramebuffer(VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Framebuffer(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::RenderPass
Device::createRenderPass(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::RenderPass(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D RenderPass::getRenderAreaGranularity() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::Extent2D granularity;
getDispatcher()->vkGetRenderAreaGranularity(
static_cast<VkDevice>(m_device), static_cast<VkRenderPass>(m_renderPass), reinterpret_cast<VkExtent2D *>(&granularity));
return granularity;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::CommandPool
Device::createCommandPool(VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::CommandPool(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void CommandPool::reset(VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkResetCommandPool(
static_cast<VkDevice>(m_device), static_cast<VkCommandPool>(m_commandPool), static_cast<VkCommandPoolResetFlags>(flags)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::CommandPool::reset");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::CommandBuffer>
Device::allocateCommandBuffers(VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const &allocateInfo) const
{
return VULKAN_HPP_RAII_NAMESPACE::CommandBuffers(*this, allocateInfo);
}
VULKAN_HPP_INLINE void CommandBuffer::begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo &beginInfo) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBeginCommandBuffer(
static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkCommandBufferBeginInfo *>(&beginInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin");
}
}
VULKAN_HPP_INLINE void CommandBuffer::end() const
{
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEndCommandBuffer(static_cast<VkCommandBuffer>(m_commandBuffer)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end");
}
}
VULKAN_HPP_INLINE void CommandBuffer::reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkResetCommandBuffer(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkCommandBufferResetFlags>(flags)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset");
}
}
VULKAN_HPP_INLINE void CommandBuffer::bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
VULKAN_HPP_NAMESPACE::Pipeline pipeline) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBindPipeline(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkPipelineBindPoint>(pipelineBindPoint), static_cast<VkPipeline>(pipeline));
}
VULKAN_HPP_INLINE void CommandBuffer::setViewport(uint32_t firstViewport,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const &viewports) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetViewport(
static_cast<VkCommandBuffer>(m_commandBuffer), firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>(viewports.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::setScissor(uint32_t firstScissor,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &scissors) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetScissor(
static_cast<VkCommandBuffer>(m_commandBuffer), firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>(scissors.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::setLineWidth(float lineWidth) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetLineWidth(static_cast<VkCommandBuffer>(m_commandBuffer), lineWidth);
}
VULKAN_HPP_INLINE void
CommandBuffer::setDepthBias(float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetDepthBias(static_cast<VkCommandBuffer>(m_commandBuffer), depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
}
VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants(const float blendConstants[4]) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetBlendConstants(static_cast<VkCommandBuffer>(m_commandBuffer), blendConstants);
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds(float minDepthBounds, float maxDepthBounds) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetDepthBounds(static_cast<VkCommandBuffer>(m_commandBuffer), minDepthBounds, maxDepthBounds);
}
VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,
uint32_t compareMask) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetStencilCompareMask(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkStencilFaceFlags>(faceMask), compareMask);
}
VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetStencilWriteMask(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkStencilFaceFlags>(faceMask), writeMask);
}
VULKAN_HPP_INLINE void CommandBuffer::setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetStencilReference(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkStencilFaceFlags>(faceMask), reference);
}
VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
VULKAN_HPP_NAMESPACE::PipelineLayout layout,
uint32_t firstSet,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const &descriptorSets,
ArrayProxy<const uint32_t> const &dynamicOffsets) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBindDescriptorSets(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkPipelineBindPoint>(pipelineBindPoint),
static_cast<VkPipelineLayout>(layout),
firstSet,
descriptorSets.size(),
reinterpret_cast<const VkDescriptorSet *>(descriptorSets.data()),
dynamicOffsets.size(),
dynamicOffsets.data());
}
VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
VULKAN_HPP_NAMESPACE::IndexType indexType) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBindIndexBuffer(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(buffer),
static_cast<VkDeviceSize>(offset),
static_cast<VkIndexType>(indexType));
}
VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers(uint32_t firstBinding,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &buffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &offsets) const
{
if(buffers.size() != offsets.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()");
}
getDispatcher()->vkCmdBindVertexBuffers(static_cast<VkCommandBuffer>(m_commandBuffer),
firstBinding,
buffers.size(),
reinterpret_cast<const VkBuffer *>(buffers.data()),
reinterpret_cast<const VkDeviceSize *>(offsets.data()));
}
VULKAN_HPP_INLINE void
CommandBuffer::draw(uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDraw(static_cast<VkCommandBuffer>(m_commandBuffer), vertexCount, instanceCount, firstVertex, firstInstance);
}
VULKAN_HPP_INLINE void CommandBuffer::drawIndexed(
uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDrawIndexed(static_cast<VkCommandBuffer>(m_commandBuffer), indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
}
VULKAN_HPP_INLINE void CommandBuffer::drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
uint32_t drawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDrawIndirect(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBuffer>(buffer), static_cast<VkDeviceSize>(offset), drawCount, stride);
}
VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
uint32_t drawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDrawIndexedIndirect(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBuffer>(buffer), static_cast<VkDeviceSize>(offset), drawCount, stride);
}
VULKAN_HPP_INLINE void CommandBuffer::dispatch(uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDispatch(static_cast<VkCommandBuffer>(m_commandBuffer), groupCountX, groupCountY, groupCountZ);
}
VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDispatchIndirect(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBuffer>(buffer), static_cast<VkDeviceSize>(offset));
}
VULKAN_HPP_INLINE void CommandBuffer::copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const &regions) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyBuffer(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(srcBuffer),
static_cast<VkBuffer>(dstBuffer),
regions.size(),
reinterpret_cast<const VkBufferCopy *>(regions.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::copyImage(VULKAN_HPP_NAMESPACE::Image srcImage,
VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,
VULKAN_HPP_NAMESPACE::Image dstImage,
VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const &regions) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyImage(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkImage>(srcImage),
static_cast<VkImageLayout>(srcImageLayout),
static_cast<VkImage>(dstImage),
static_cast<VkImageLayout>(dstImageLayout),
regions.size(),
reinterpret_cast<const VkImageCopy *>(regions.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::blitImage(VULKAN_HPP_NAMESPACE::Image srcImage,
VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,
VULKAN_HPP_NAMESPACE::Image dstImage,
VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const &regions,
VULKAN_HPP_NAMESPACE::Filter filter) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBlitImage(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkImage>(srcImage),
static_cast<VkImageLayout>(srcImageLayout),
static_cast<VkImage>(dstImage),
static_cast<VkImageLayout>(dstImageLayout),
regions.size(),
reinterpret_cast<const VkImageBlit *>(regions.data()),
static_cast<VkFilter>(filter));
}
VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,
VULKAN_HPP_NAMESPACE::Image dstImage,
VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const &regions) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyBufferToImage(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(srcBuffer),
static_cast<VkImage>(dstImage),
static_cast<VkImageLayout>(dstImageLayout),
regions.size(),
reinterpret_cast<const VkBufferImageCopy *>(regions.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer(VULKAN_HPP_NAMESPACE::Image srcImage,
VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const &regions) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyImageToBuffer(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkImage>(srcImage),
static_cast<VkImageLayout>(srcImageLayout),
static_cast<VkBuffer>(dstBuffer),
regions.size(),
reinterpret_cast<const VkBufferImageCopy *>(regions.data()));
}
template<typename DataType>
VULKAN_HPP_INLINE void CommandBuffer::updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
ArrayProxy<const DataType> const &data) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdUpdateBuffer(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(dstBuffer),
static_cast<VkDeviceSize>(dstOffset),
data.size() * sizeof(DataType),
reinterpret_cast<const void *>(data.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::fillBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
VULKAN_HPP_NAMESPACE::DeviceSize size,
uint32_t data) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdFillBuffer(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(dstBuffer),
static_cast<VkDeviceSize>(dstOffset),
static_cast<VkDeviceSize>(size),
data);
}
VULKAN_HPP_INLINE void
CommandBuffer::clearColorImage(VULKAN_HPP_NAMESPACE::Image image,
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
const VULKAN_HPP_NAMESPACE::ClearColorValue &color,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const &ranges) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdClearColorImage(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkImage>(image),
static_cast<VkImageLayout>(imageLayout),
reinterpret_cast<const VkClearColorValue *>(&color),
ranges.size(),
reinterpret_cast<const VkImageSubresourceRange *>(ranges.data()));
}
VULKAN_HPP_INLINE void
CommandBuffer::clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue &depthStencil,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const &ranges) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdClearDepthStencilImage(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkImage>(image),
static_cast<VkImageLayout>(imageLayout),
reinterpret_cast<const VkClearDepthStencilValue *>(&depthStencil),
ranges.size(),
reinterpret_cast<const VkImageSubresourceRange *>(ranges.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::clearAttachments(ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const &attachments,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const &rects) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdClearAttachments(static_cast<VkCommandBuffer>(m_commandBuffer),
attachments.size(),
reinterpret_cast<const VkClearAttachment *>(attachments.data()),
rects.size(),
reinterpret_cast<const VkClearRect *>(rects.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::resolveImage(VULKAN_HPP_NAMESPACE::Image srcImage,
VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,
VULKAN_HPP_NAMESPACE::Image dstImage,
VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const &regions) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdResolveImage(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkImage>(srcImage),
static_cast<VkImageLayout>(srcImageLayout),
static_cast<VkImage>(dstImage),
static_cast<VkImageLayout>(dstImageLayout),
regions.size(),
reinterpret_cast<const VkImageResolve *>(regions.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::setEvent(VULKAN_HPP_NAMESPACE::Event event,
VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetEvent(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkEvent>(event), static_cast<VkPipelineStageFlags>(stageMask));
}
VULKAN_HPP_INLINE void CommandBuffer::resetEvent(VULKAN_HPP_NAMESPACE::Event event,
VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdResetEvent(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkEvent>(event), static_cast<VkPipelineStageFlags>(stageMask));
}
VULKAN_HPP_INLINE void
CommandBuffer::waitEvents(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &events,
VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,
VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,
ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const &memoryBarriers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const &bufferMemoryBarriers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const &imageMemoryBarriers) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdWaitEvents(static_cast<VkCommandBuffer>(m_commandBuffer),
events.size(),
reinterpret_cast<const VkEvent *>(events.data()),
static_cast<VkPipelineStageFlags>(srcStageMask),
static_cast<VkPipelineStageFlags>(dstStageMask),
memoryBarriers.size(),
reinterpret_cast<const VkMemoryBarrier *>(memoryBarriers.data()),
bufferMemoryBarriers.size(),
reinterpret_cast<const VkBufferMemoryBarrier *>(bufferMemoryBarriers.data()),
imageMemoryBarriers.size(),
reinterpret_cast<const VkImageMemoryBarrier *>(imageMemoryBarriers.data()));
}
VULKAN_HPP_INLINE void
CommandBuffer::pipelineBarrier(VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,
VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,
VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags,
ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const &memoryBarriers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const &bufferMemoryBarriers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const &imageMemoryBarriers) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdPipelineBarrier(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkPipelineStageFlags>(srcStageMask),
static_cast<VkPipelineStageFlags>(dstStageMask),
static_cast<VkDependencyFlags>(dependencyFlags),
memoryBarriers.size(),
reinterpret_cast<const VkMemoryBarrier *>(memoryBarriers.data()),
bufferMemoryBarriers.size(),
reinterpret_cast<const VkBufferMemoryBarrier *>(bufferMemoryBarriers.data()),
imageMemoryBarriers.size(),
reinterpret_cast<const VkImageMemoryBarrier *>(imageMemoryBarriers.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query,
VULKAN_HPP_NAMESPACE::QueryControlFlags flags) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBeginQuery(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkQueryPool>(queryPool), query, static_cast<VkQueryControlFlags>(flags));
}
VULKAN_HPP_INLINE void CommandBuffer::endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdEndQuery(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkQueryPool>(queryPool), query);
}
VULKAN_HPP_INLINE void
CommandBuffer::resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdResetQueryPool(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkQueryPool>(queryPool), firstQuery, queryCount);
}
VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdWriteTimestamp(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkPipelineStageFlagBits>(pipelineStage), static_cast<VkQueryPool>(queryPool), query);
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyQueryPoolResults(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkQueryPool>(queryPool),
firstQuery,
queryCount,
static_cast<VkBuffer>(dstBuffer),
static_cast<VkDeviceSize>(dstOffset),
static_cast<VkDeviceSize>(stride),
static_cast<VkQueryResultFlags>(flags));
}
template<typename ValuesType>
VULKAN_HPP_INLINE void CommandBuffer::pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,
VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,
uint32_t offset,
ArrayProxy<const ValuesType> const &values) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdPushConstants(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkPipelineLayout>(layout),
static_cast<VkShaderStageFlags>(stageFlags),
offset,
values.size() * sizeof(ValuesType),
reinterpret_cast<const void *>(values.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo &renderPassBegin,
VULKAN_HPP_NAMESPACE::SubpassContents contents) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBeginRenderPass(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkRenderPassBeginInfo *>(&renderPassBegin),
static_cast<VkSubpassContents>(contents));
}
VULKAN_HPP_INLINE void CommandBuffer::nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdNextSubpass(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkSubpassContents>(contents));
}
VULKAN_HPP_INLINE void CommandBuffer::endRenderPass() const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdEndRenderPass(static_cast<VkCommandBuffer>(m_commandBuffer));
}
VULKAN_HPP_INLINE void
CommandBuffer::executeCommands(ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const &commandBuffers) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdExecuteCommands(
static_cast<VkCommandBuffer>(m_commandBuffer), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>(commandBuffers.data()));
}
//=== VK_VERSION_1_1 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t Context::enumerateInstanceVersion() const
{
uint32_t apiVersion;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEnumerateInstanceVersion(&apiVersion));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Context::enumerateInstanceVersion");
}
return apiVersion;
}
VULKAN_HPP_INLINE void Device::bindBufferMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const &bindInfos) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBindBufferMemory2(
static_cast<VkDevice>(m_device), bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>(bindInfos.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2");
}
}
VULKAN_HPP_INLINE void Device::bindImageMemory2(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const &bindInfos) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBindImageMemory2(
static_cast<VkDevice>(m_device), bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>(bindInfos.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags
Device::getGroupPeerMemoryFeatures(uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
getDispatcher()->vkGetDeviceGroupPeerMemoryFeatures(static_cast<VkDevice>(m_device),
heapIndex,
localDeviceIndex,
remoteDeviceIndex,
reinterpret_cast<VkPeerMemoryFeatureFlags *>(&peerMemoryFeatures));
return peerMemoryFeatures;
}
VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask(uint32_t deviceMask) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetDeviceMask(static_cast<VkCommandBuffer>(m_commandBuffer), deviceMask);
}
VULKAN_HPP_INLINE void CommandBuffer::dispatchBase(uint32_t baseGroupX,
uint32_t baseGroupY,
uint32_t baseGroupZ,
uint32_t groupCountX,
uint32_t groupCountY,
uint32_t groupCountZ) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDispatchBase(
static_cast<VkCommandBuffer>(m_commandBuffer), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> Instance::enumeratePhysicalDeviceGroups() const
{
std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> physicalDeviceGroupProperties;
uint32_t physicalDeviceGroupCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkEnumeratePhysicalDeviceGroups(static_cast<VkInstance>(m_instance), &physicalDeviceGroupCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && physicalDeviceGroupCount)
{
physicalDeviceGroupProperties.resize(physicalDeviceGroupCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkEnumeratePhysicalDeviceGroups(static_cast<VkInstance>(m_instance),
&physicalDeviceGroupCount,
reinterpret_cast<VkPhysicalDeviceGroupProperties *>(physicalDeviceGroupProperties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(physicalDeviceGroupCount <= physicalDeviceGroupProperties.size());
if(physicalDeviceGroupCount < physicalDeviceGroupProperties.size())
{
physicalDeviceGroupProperties.resize(physicalDeviceGroupCount);
}
}
return physicalDeviceGroupProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetImageMemoryRequirements2(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetImageMemoryRequirements2(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetBufferMemoryRequirements2(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetBufferMemoryRequirements2(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
Device::getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
uint32_t sparseMemoryRequirementCount;
getDispatcher()->vkGetImageSparseMemoryRequirements2(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>(&info), &sparseMemoryRequirementCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements(sparseMemoryRequirementCount);
getDispatcher()->vkGetImageSparseMemoryRequirements2(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>(&info),
&sparseMemoryRequirementCount,
reinterpret_cast<VkSparseImageMemoryRequirements2 *>(sparseMemoryRequirements.data()));
VULKAN_HPP_ASSERT(sparseMemoryRequirementCount == sparseMemoryRequirements.size());
return sparseMemoryRequirements;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
getDispatcher()->vkGetPhysicalDeviceFeatures2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceFeatures2 *>(&features));
return features;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2() const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 &features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
getDispatcher()->vkGetPhysicalDeviceFeatures2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceFeatures2 *>(&features));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
getDispatcher()->vkGetPhysicalDeviceProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceProperties2 *>(&properties));
return properties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2() const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 &properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
getDispatcher()->vkGetPhysicalDeviceProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceProperties2 *>(&properties));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2
PhysicalDevice::getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
getDispatcher()->vkGetPhysicalDeviceFormatProperties2(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkFormat>(format), reinterpret_cast<VkFormatProperties2 *>(&formatProperties));
return formatProperties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
PhysicalDevice::getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::FormatProperties2 &formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
getDispatcher()->vkGetPhysicalDeviceFormatProperties2(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkFormat>(format), reinterpret_cast<VkFormatProperties2 *>(&formatProperties));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties2
PhysicalDevice::getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 &imageFormatInfo) const
{
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>(&imageFormatInfo),
reinterpret_cast<VkImageFormatProperties2 *>(&imageFormatProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2");
}
return imageFormatProperties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
PhysicalDevice::getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 &imageFormatInfo) const
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 &imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>(&imageFormatInfo),
reinterpret_cast<VkImageFormatProperties2 *>(&imageFormatProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2");
}
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>
PhysicalDevice::getQueueFamilyProperties2() const VULKAN_HPP_NOEXCEPT
{
uint32_t queueFamilyPropertyCount;
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice), &queueFamilyPropertyCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties(queueFamilyPropertyCount);
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
&queueFamilyPropertyCount,
reinterpret_cast<VkQueueFamilyProperties2 *>(queueFamilyProperties.data()));
VULKAN_HPP_ASSERT(queueFamilyPropertyCount == queueFamilyProperties.size());
return queueFamilyProperties;
}
template<typename StructureChain>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> PhysicalDevice::getQueueFamilyProperties2() const
{
uint32_t queueFamilyPropertyCount;
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice), &queueFamilyPropertyCount, nullptr);
std::vector<StructureChain> returnVector(queueFamilyPropertyCount);
std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties(queueFamilyPropertyCount);
for(uint32_t i = 0; i < queueFamilyPropertyCount; i++)
{
queueFamilyProperties[i].pNext = returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
}
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
&queueFamilyPropertyCount,
reinterpret_cast<VkQueueFamilyProperties2 *>(queueFamilyProperties.data()));
VULKAN_HPP_ASSERT(queueFamilyPropertyCount <= queueFamilyProperties.size());
for(uint32_t i = 0; i < queueFamilyPropertyCount; i++)
{
returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
}
return returnVector;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
getDispatcher()->vkGetPhysicalDeviceMemoryProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>(&memoryProperties));
return memoryProperties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2() const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 &memoryProperties =
structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
getDispatcher()->vkGetPhysicalDeviceMemoryProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>(&memoryProperties));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
PhysicalDevice::getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 &formatInfo) const VULKAN_HPP_NOEXCEPT
{
uint32_t propertyCount;
getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>(&formatInfo),
&propertyCount,
nullptr);
std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> properties(propertyCount);
getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>(&formatInfo),
&propertyCount,
reinterpret_cast<VkSparseImageFormatProperties2 *>(properties.data()));
VULKAN_HPP_ASSERT(propertyCount == properties.size());
return properties;
}
VULKAN_HPP_INLINE void CommandPool::trim(VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkTrimCommandPool(
static_cast<VkDevice>(m_device), static_cast<VkCommandPool>(m_commandPool), static_cast<VkCommandPoolTrimFlags>(flags));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Queue Device::getQueue2(VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const &queueInfo) const
{
return VULKAN_HPP_RAII_NAMESPACE::Queue(*this, queueInfo);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion
Device::createSamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate
Device::createDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate(*this, createInfo, allocator);
}
template<typename DataType>
VULKAN_HPP_INLINE void DescriptorSet::updateWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
DataType const &data) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkUpdateDescriptorSetWithTemplate(static_cast<VkDevice>(m_device),
static_cast<VkDescriptorSet>(m_descriptorSet),
static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate),
reinterpret_cast<const void *>(&data));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties
PhysicalDevice::getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo &externalBufferInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
getDispatcher()->vkGetPhysicalDeviceExternalBufferProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>(&externalBufferInfo),
reinterpret_cast<VkExternalBufferProperties *>(&externalBufferProperties));
return externalBufferProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties
PhysicalDevice::getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo &externalFenceInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
getDispatcher()->vkGetPhysicalDeviceExternalFenceProperties(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>(&externalFenceInfo),
reinterpret_cast<VkExternalFenceProperties *>(&externalFenceProperties));
return externalFenceProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties(
const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo &externalSemaphoreInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
getDispatcher()->vkGetPhysicalDeviceExternalSemaphoreProperties(
static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>(&externalSemaphoreInfo),
reinterpret_cast<VkExternalSemaphoreProperties *>(&externalSemaphoreProperties));
return externalSemaphoreProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport
Device::getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo &createInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
getDispatcher()->vkGetDescriptorSetLayoutSupport(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>(&createInfo),
reinterpret_cast<VkDescriptorSetLayoutSupport *>(&support));
return support;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo &createInfo) const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport &support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
getDispatcher()->vkGetDescriptorSetLayoutSupport(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>(&createInfo),
reinterpret_cast<VkDescriptorSetLayoutSupport *>(&support));
return structureChain;
}
//=== VK_VERSION_1_2 ===
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDrawIndirectCount(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(buffer),
static_cast<VkDeviceSize>(offset),
static_cast<VkBuffer>(countBuffer),
static_cast<VkDeviceSize>(countBufferOffset),
maxDrawCount,
stride);
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdDrawIndexedIndirectCount(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(buffer),
static_cast<VkDeviceSize>(offset),
static_cast<VkBuffer>(countBuffer),
static_cast<VkDeviceSize>(countBufferOffset),
maxDrawCount,
stride);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::RenderPass
Device::createRenderPass2(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::RenderPass(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo &renderPassBegin,
const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &subpassBeginInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBeginRenderPass2(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkRenderPassBeginInfo *>(&renderPassBegin),
reinterpret_cast<const VkSubpassBeginInfo *>(&subpassBeginInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &subpassBeginInfo,
const VULKAN_HPP_NAMESPACE::SubpassEndInfo &subpassEndInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdNextSubpass2(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkSubpassBeginInfo *>(&subpassBeginInfo),
reinterpret_cast<const VkSubpassEndInfo *>(&subpassEndInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo &subpassEndInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdEndRenderPass2(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkSubpassEndInfo *>(&subpassEndInfo));
}
VULKAN_HPP_INLINE void QueryPool::reset(uint32_t firstQuery, uint32_t queryCount) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkResetQueryPool(static_cast<VkDevice>(m_device), static_cast<VkQueryPool>(m_queryPool), firstQuery, queryCount);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValue() const
{
uint64_t value;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetSemaphoreCounterValue(static_cast<VkDevice>(m_device), static_cast<VkSemaphore>(m_semaphore), &value));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValue");
}
return value;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo &waitInfo,
uint64_t timeout) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkWaitSemaphores(static_cast<VkDevice>(m_device), reinterpret_cast<const VkSemaphoreWaitInfo *>(&waitInfo), timeout));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eTimeout))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores");
}
return result;
}
VULKAN_HPP_INLINE void Device::signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo &signalInfo) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkSignalSemaphore(static_cast<VkDevice>(m_device), reinterpret_cast<const VkSemaphoreSignalInfo *>(&signalInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
Device::getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT
{
return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>(
getDispatcher()->vkGetBufferDeviceAddress(static_cast<VkDevice>(m_device), reinterpret_cast<const VkBufferDeviceAddressInfo *>(&info)));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t
Device::getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT
{
return getDispatcher()->vkGetBufferOpaqueCaptureAddress(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkBufferDeviceAddressInfo *>(&info));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t
Device::getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo &info) const VULKAN_HPP_NOEXCEPT
{
return getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddress(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>(&info));
}
//=== VK_VERSION_1_3 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> PhysicalDevice::getToolProperties() const
{
std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> toolProperties;
uint32_t toolCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceToolProperties(static_cast<VkPhysicalDevice>(m_physicalDevice), &toolCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && toolCount)
{
toolProperties.resize(toolCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceToolProperties(
static_cast<VkPhysicalDevice>(m_physicalDevice), &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>(toolProperties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(toolCount <= toolProperties.size());
if(toolCount < toolProperties.size())
{
toolProperties.resize(toolCount);
}
}
return toolProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot
Device::createPrivateDataSlot(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void Device::setPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,
uint64_t objectHandle,
VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
uint64_t data) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkSetPrivateData(
static_cast<VkDevice>(m_device), static_cast<VkObjectType>(objectType_), objectHandle, static_cast<VkPrivateDataSlot>(privateDataSlot), data));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,
uint64_t objectHandle,
VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot) const VULKAN_HPP_NOEXCEPT
{
uint64_t data;
getDispatcher()->vkGetPrivateData(
static_cast<VkDevice>(m_device), static_cast<VkObjectType>(objectType_), objectHandle, static_cast<VkPrivateDataSlot>(privateDataSlot), &data);
return data;
}
VULKAN_HPP_INLINE void CommandBuffer::setEvent2(VULKAN_HPP_NAMESPACE::Event event,
const VULKAN_HPP_NAMESPACE::DependencyInfo &dependencyInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetEvent2(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkEvent>(event), reinterpret_cast<const VkDependencyInfo *>(&dependencyInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::resetEvent2(VULKAN_HPP_NAMESPACE::Event event,
VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdResetEvent2(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkEvent>(event), static_cast<VkPipelineStageFlags2>(stageMask));
}
VULKAN_HPP_INLINE void CommandBuffer::waitEvents2(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &events,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const &dependencyInfos) const
{
if(events.size() != dependencyInfos.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2: events.size() != dependencyInfos.size()");
}
getDispatcher()->vkCmdWaitEvents2(static_cast<VkCommandBuffer>(m_commandBuffer),
events.size(),
reinterpret_cast<const VkEvent *>(events.data()),
reinterpret_cast<const VkDependencyInfo *>(dependencyInfos.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2(const VULKAN_HPP_NAMESPACE::DependencyInfo &dependencyInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdPipelineBarrier2(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkDependencyInfo *>(&dependencyInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdWriteTimestamp2(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkPipelineStageFlags2>(stage), static_cast<VkQueryPool>(queryPool), query);
}
VULKAN_HPP_INLINE void Queue::submit2(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const &submits, VULKAN_HPP_NAMESPACE::Fence fence) const
{
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkQueueSubmit2(
static_cast<VkQueue>(m_queue), submits.size(), reinterpret_cast<const VkSubmitInfo2 *>(submits.data()), static_cast<VkFence>(fence)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2");
}
}
VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 &copyBufferInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyBuffer2(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkCopyBufferInfo2 *>(&copyBufferInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::copyImage2(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 &copyImageInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyImage2(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkCopyImageInfo2 *>(&copyImageInfo));
}
VULKAN_HPP_INLINE void
CommandBuffer::copyBufferToImage2(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 &copyBufferToImageInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyBufferToImage2(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkCopyBufferToImageInfo2 *>(&copyBufferToImageInfo));
}
VULKAN_HPP_INLINE void
CommandBuffer::copyImageToBuffer2(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 &copyImageToBufferInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdCopyImageToBuffer2(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkCopyImageToBufferInfo2 *>(&copyImageToBufferInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::blitImage2(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 &blitImageInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBlitImage2(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkBlitImageInfo2 *>(&blitImageInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::resolveImage2(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 &resolveImageInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdResolveImage2(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkResolveImageInfo2 *>(&resolveImageInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::beginRendering(const VULKAN_HPP_NAMESPACE::RenderingInfo &renderingInfo) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdBeginRendering(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkRenderingInfo *>(&renderingInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::endRendering() const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdEndRendering(static_cast<VkCommandBuffer>(m_commandBuffer));
}
VULKAN_HPP_INLINE void CommandBuffer::setCullMode(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetCullMode(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkCullModeFlags>(cullMode));
}
VULKAN_HPP_INLINE void CommandBuffer::setFrontFace(VULKAN_HPP_NAMESPACE::FrontFace frontFace) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetFrontFace(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkFrontFace>(frontFace));
}
VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopology(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetPrimitiveTopology(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkPrimitiveTopology>(primitiveTopology));
}
VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCount(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const &viewports) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetViewportWithCount(
static_cast<VkCommandBuffer>(m_commandBuffer), viewports.size(), reinterpret_cast<const VkViewport *>(viewports.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCount(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &scissors) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetScissorWithCount(
static_cast<VkCommandBuffer>(m_commandBuffer), scissors.size(), reinterpret_cast<const VkRect2D *>(scissors.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2(uint32_t firstBinding,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &buffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &offsets,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &sizes,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &strides) const
{
if(buffers.size() != offsets.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != offsets.size()");
}
if(!sizes.empty() && buffers.size() != sizes.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != sizes.size()");
}
if(!strides.empty() && buffers.size() != strides.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != strides.size()");
}
getDispatcher()->vkCmdBindVertexBuffers2(static_cast<VkCommandBuffer>(m_commandBuffer),
firstBinding,
buffers.size(),
reinterpret_cast<const VkBuffer *>(buffers.data()),
reinterpret_cast<const VkDeviceSize *>(offsets.data()),
reinterpret_cast<const VkDeviceSize *>(sizes.data()),
reinterpret_cast<const VkDeviceSize *>(strides.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnable(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetDepthTestEnable(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(depthTestEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnable(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetDepthWriteEnable(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(depthWriteEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOp(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetDepthCompareOp(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkCompareOp>(depthCompareOp));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnable(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetDepthBoundsTestEnable(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(depthBoundsTestEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnable(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetStencilTestEnable(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(stencilTestEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetStencilOp(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkStencilFaceFlags>(faceMask),
static_cast<VkStencilOp>(failOp),
static_cast<VkStencilOp>(passOp),
static_cast<VkStencilOp>(depthFailOp),
static_cast<VkCompareOp>(compareOp));
}
VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnable(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetRasterizerDiscardEnable(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(rasterizerDiscardEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnable(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetDepthBiasEnable(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(depthBiasEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnable(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable) const VULKAN_HPP_NOEXCEPT
{
getDispatcher()->vkCmdSetPrimitiveRestartEnable(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(primitiveRestartEnable));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetDeviceBufferMemoryRequirements(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceBufferMemoryRequirements *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetDeviceBufferMemoryRequirements(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceBufferMemoryRequirements *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetDeviceImageMemoryRequirements(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceImageMemoryRequirements *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetDeviceImageMemoryRequirements(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceImageMemoryRequirements *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
Device::getImageSparseMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
uint32_t sparseMemoryRequirementCount;
getDispatcher()->vkGetDeviceImageSparseMemoryRequirements(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkDeviceImageMemoryRequirements *>(&info), &sparseMemoryRequirementCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements(sparseMemoryRequirementCount);
getDispatcher()->vkGetDeviceImageSparseMemoryRequirements(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceImageMemoryRequirements *>(&info),
&sparseMemoryRequirementCount,
reinterpret_cast<VkSparseImageMemoryRequirements2 *>(sparseMemoryRequirements.data()));
VULKAN_HPP_ASSERT(sparseMemoryRequirementCount == sparseMemoryRequirements.size());
return sparseMemoryRequirements;
}
//=== VK_KHR_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getSurfaceSupportKHR(uint32_t queueFamilyIndex,
VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR &&
"Function <vkGetPhysicalDeviceSurfaceSupportKHR> needs extension <VK_KHR_surface> enabled!");
VULKAN_HPP_NAMESPACE::Bool32 supported;
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceSurfaceSupportKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
queueFamilyIndex,
static_cast<VkSurfaceKHR>(surface),
reinterpret_cast<VkBool32 *>(&supported)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR");
}
return supported;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR
PhysicalDevice::getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR &&
"Function <vkGetPhysicalDeviceSurfaceCapabilitiesKHR> needs extension <VK_KHR_surface> enabled!");
VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkSurfaceKHR>(surface),
reinterpret_cast<VkSurfaceCapabilitiesKHR *>(&surfaceCapabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR");
}
return surfaceCapabilities;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>
PhysicalDevice::getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR &&
"Function <vkGetPhysicalDeviceSurfaceFormatsKHR> needs extension <VK_KHR_surface> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR> surfaceFormats;
uint32_t surfaceFormatCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkSurfaceKHR>(surface), &surfaceFormatCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && surfaceFormatCount)
{
surfaceFormats.resize(surfaceFormatCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfaceFormatsKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkSurfaceKHR>(surface),
&surfaceFormatCount,
reinterpret_cast<VkSurfaceFormatKHR *>(surfaceFormats.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(surfaceFormatCount <= surfaceFormats.size());
if(surfaceFormatCount < surfaceFormats.size())
{
surfaceFormats.resize(surfaceFormatCount);
}
}
return surfaceFormats;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR>
PhysicalDevice::getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR &&
"Function <vkGetPhysicalDeviceSurfacePresentModesKHR> needs extension <VK_KHR_surface> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> presentModes;
uint32_t presentModeCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkSurfaceKHR>(surface), &presentModeCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && presentModeCount)
{
presentModes.resize(presentModeCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfacePresentModesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkSurfaceKHR>(surface),
&presentModeCount,
reinterpret_cast<VkPresentModeKHR *>(presentModes.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(presentModeCount <= presentModes.size());
if(presentModeCount < presentModes.size())
{
presentModes.resize(presentModeCount);
}
}
return presentModes;
}
//=== VK_KHR_swapchain ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR
Device::createSwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VkImage> SwapchainKHR::getImages() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetSwapchainImagesKHR && "Function <vkGetSwapchainImagesKHR> needs extension <VK_KHR_swapchain> enabled!");
std::vector<VkImage> swapchainImages;
uint32_t swapchainImageCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetSwapchainImagesKHR(
static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain), &swapchainImageCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && swapchainImageCount)
{
swapchainImages.resize(swapchainImageCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetSwapchainImagesKHR(
static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain), &swapchainImageCount, swapchainImages.data()));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getImages");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(swapchainImageCount <= swapchainImages.size());
if(swapchainImageCount < swapchainImages.size())
{
swapchainImages.resize(swapchainImageCount);
}
}
return swapchainImages;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t>
SwapchainKHR::acquireNextImage(uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkAcquireNextImageKHR && "Function <vkAcquireNextImageKHR> needs extension <VK_KHR_swapchain> enabled!");
uint32_t imageIndex;
VULKAN_HPP_NAMESPACE::Result result =
static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkAcquireNextImageKHR(static_cast<VkDevice>(m_device),
static_cast<VkSwapchainKHR>(m_swapchain),
timeout,
static_cast<VkSemaphore>(semaphore),
static_cast<VkFence>(fence),
&imageIndex));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eTimeout) &&
(result != VULKAN_HPP_NAMESPACE::Result::eNotReady) && (result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireNextImage");
}
return std::make_pair(result, imageIndex);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Queue::presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR &presentInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkQueuePresentKHR && "Function <vkQueuePresentKHR> needs extension <VK_KHR_swapchain> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkQueuePresentKHR(static_cast<VkQueue>(m_queue), reinterpret_cast<const VkPresentInfoKHR *>(&presentInfo)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR");
}
return result;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR Device::getGroupPresentCapabilitiesKHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR &&
"Function <vkGetDeviceGroupPresentCapabilitiesKHR> needs extension <VK_KHR_swapchain> enabled!");
VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetDeviceGroupPresentCapabilitiesKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>(&deviceGroupPresentCapabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR");
}
return deviceGroupPresentCapabilities;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR
Device::getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR &&
"Function <vkGetDeviceGroupSurfacePresentModesKHR> needs extension <VK_KHR_swapchain> enabled!");
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetDeviceGroupSurfacePresentModesKHR(
static_cast<VkDevice>(m_device), static_cast<VkSurfaceKHR>(surface), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>(&modes)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR");
}
return modes;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::Rect2D>
PhysicalDevice::getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR &&
"Function <vkGetPhysicalDevicePresentRectanglesKHR> needs extension <VK_KHR_swapchain> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::Rect2D> rects;
uint32_t rectCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkSurfaceKHR>(surface), &rectCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && rectCount)
{
rects.resize(rectCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDevicePresentRectanglesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkSurfaceKHR>(surface),
&rectCount,
reinterpret_cast<VkRect2D *>(rects.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(rectCount <= rects.size());
if(rectCount < rects.size())
{
rects.resize(rectCount);
}
}
return rects;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, uint32_t>
Device::acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR &acquireInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkAcquireNextImage2KHR && "Function <vkAcquireNextImage2KHR> needs extension <VK_KHR_swapchain> enabled!");
uint32_t imageIndex;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkAcquireNextImage2KHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkAcquireNextImageInfoKHR *>(&acquireInfo), &imageIndex));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eTimeout) &&
(result != VULKAN_HPP_NAMESPACE::Result::eNotReady) && (result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR");
}
return std::make_pair(result, imageIndex);
}
//=== VK_KHR_display ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> PhysicalDevice::getDisplayPropertiesKHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR &&
"Function <vkGetPhysicalDeviceDisplayPropertiesKHR> needs extension <VK_KHR_display> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceDisplayPropertiesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> PhysicalDevice::getDisplayPlanePropertiesKHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR &&
"Function <vkGetPhysicalDeviceDisplayPlanePropertiesKHR> needs extension <VK_KHR_display> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::DisplayKHR>
PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex) const
{
return VULKAN_HPP_RAII_NAMESPACE::DisplayKHRs(*this, planeIndex);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> DisplayKHR::getModeProperties() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDisplayModePropertiesKHR &&
"Function <vkGetDisplayModePropertiesKHR> needs extension <VK_KHR_display> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetDisplayModePropertiesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkDisplayKHR>(m_display), &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetDisplayModePropertiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkDisplayKHR>(m_display),
&propertyCount,
reinterpret_cast<VkDisplayModePropertiesKHR *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR
DisplayKHR::createMode(VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DisplayModeKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR
DisplayModeKHR::getDisplayPlaneCapabilities(uint32_t planeIndex) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR &&
"Function <vkGetDisplayPlaneCapabilitiesKHR> needs extension <VK_KHR_display> enabled!");
VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetDisplayPlaneCapabilitiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkDisplayModeKHR>(m_displayModeKHR),
planeIndex,
reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>(&capabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::DisplayModeKHR::getDisplayPlaneCapabilities");
}
return capabilities;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createDisplayPlaneSurfaceKHR(VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
//=== VK_KHR_display_swapchain ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR>
Device::createSharedSwapchainsKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const &createInfos,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SwapchainKHRs(*this, createInfos, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR
Device::createSharedSwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SwapchainKHR(*this, createInfo, allocator);
}
# if defined(VK_USE_PLATFORM_XLIB_KHR)
//=== VK_KHR_xlib_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createXlibSurfaceKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
PhysicalDevice::getXlibPresentationSupportKHR(uint32_t queueFamilyIndex, Display &dpy, VisualID visualID) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR &&
"Function <vkGetPhysicalDeviceXlibPresentationSupportKHR> needs extension <VK_KHR_xlib_surface> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::Bool32>(
getDispatcher()->vkGetPhysicalDeviceXlibPresentationSupportKHR(static_cast<VkPhysicalDevice>(m_physicalDevice), queueFamilyIndex, &dpy, visualID));
}
# endif /*VK_USE_PLATFORM_XLIB_KHR*/
# if defined(VK_USE_PLATFORM_XCB_KHR)
//=== VK_KHR_xcb_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createXcbSurfaceKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXcbPresentationSupportKHR(
uint32_t queueFamilyIndex, xcb_connection_t &connection, xcb_visualid_t visual_id) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR &&
"Function <vkGetPhysicalDeviceXcbPresentationSupportKHR> needs extension <VK_KHR_xcb_surface> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::Bool32>(getDispatcher()->vkGetPhysicalDeviceXcbPresentationSupportKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), queueFamilyIndex, &connection, visual_id));
}
# endif /*VK_USE_PLATFORM_XCB_KHR*/
# if defined(VK_USE_PLATFORM_WAYLAND_KHR)
//=== VK_KHR_wayland_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createWaylandSurfaceKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
PhysicalDevice::getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex, struct wl_display &display) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR &&
"Function <vkGetPhysicalDeviceWaylandPresentationSupportKHR> needs extension <VK_KHR_wayland_surface> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::Bool32>(
getDispatcher()->vkGetPhysicalDeviceWaylandPresentationSupportKHR(static_cast<VkPhysicalDevice>(m_physicalDevice), queueFamilyIndex, &display));
}
# endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
# if defined(VK_USE_PLATFORM_ANDROID_KHR)
//=== VK_KHR_android_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createAndroidSurfaceKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_win32_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createWin32SurfaceKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
PhysicalDevice::getWin32PresentationSupportKHR(uint32_t queueFamilyIndex) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR &&
"Function <vkGetPhysicalDeviceWin32PresentationSupportKHR> needs extension <VK_KHR_win32_surface> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::Bool32>(
getDispatcher()->vkGetPhysicalDeviceWin32PresentationSupportKHR(static_cast<VkPhysicalDevice>(m_physicalDevice), queueFamilyIndex));
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_debug_report ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT
Instance::createDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void Instance::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkDebugReportMessageEXT && "Function <vkDebugReportMessageEXT> needs extension <VK_EXT_debug_report> enabled!");
getDispatcher()->vkDebugReportMessageEXT(static_cast<VkInstance>(m_instance),
static_cast<VkDebugReportFlagsEXT>(flags),
static_cast<VkDebugReportObjectTypeEXT>(objectType_),
object,
location,
messageCode,
layerPrefix.c_str(),
message.c_str());
}
//=== VK_EXT_debug_marker ===
VULKAN_HPP_INLINE void Device::debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT &tagInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkDebugMarkerSetObjectTagEXT &&
"Function <vkDebugMarkerSetObjectTagEXT> needs extension <VK_EXT_debug_marker> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkDebugMarkerSetObjectTagEXT(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>(&tagInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT");
}
}
VULKAN_HPP_INLINE void Device::debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT &nameInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkDebugMarkerSetObjectNameEXT &&
"Function <vkDebugMarkerSetObjectNameEXT> needs extension <VK_EXT_debug_marker> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkDebugMarkerSetObjectNameEXT(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>(&nameInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT");
}
}
VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT &markerInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDebugMarkerBeginEXT && "Function <vkCmdDebugMarkerBeginEXT> needs extension <VK_EXT_debug_marker> enabled!");
getDispatcher()->vkCmdDebugMarkerBeginEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>(&markerInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDebugMarkerEndEXT && "Function <vkCmdDebugMarkerEndEXT> needs extension <VK_EXT_debug_marker> enabled!");
getDispatcher()->vkCmdDebugMarkerEndEXT(static_cast<VkCommandBuffer>(m_commandBuffer));
}
VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT &markerInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDebugMarkerInsertEXT && "Function <vkCmdDebugMarkerInsertEXT> needs extension <VK_EXT_debug_marker> enabled!");
getDispatcher()->vkCmdDebugMarkerInsertEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>(&markerInfo));
}
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_queue ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR
PhysicalDevice::getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileKHR &videoProfile) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR &&
"Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> needs extension <VK_KHR_video_queue> enabled!");
VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR capabilities;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkVideoProfileKHR *>(&videoProfile),
reinterpret_cast<VkVideoCapabilitiesKHR *>(&capabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR");
}
return capabilities;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> PhysicalDevice::getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileKHR &videoProfile) const
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR &capabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>();
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceVideoCapabilitiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkVideoProfileKHR *>(&videoProfile),
reinterpret_cast<VkVideoCapabilitiesKHR *>(&capabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR");
}
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>
PhysicalDevice::getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR &videoFormatInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR &&
"Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> needs extension <VK_KHR_video_queue> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> videoFormatProperties;
uint32_t videoFormatPropertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>(&videoFormatInfo),
&videoFormatPropertyCount,
nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && videoFormatPropertyCount)
{
videoFormatProperties.resize(videoFormatPropertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceVideoFormatPropertiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>(&videoFormatInfo),
&videoFormatPropertyCount,
reinterpret_cast<VkVideoFormatPropertiesKHR *>(videoFormatProperties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(videoFormatPropertyCount <= videoFormatProperties.size());
if(videoFormatPropertyCount < videoFormatProperties.size())
{
videoFormatProperties.resize(videoFormatPropertyCount);
}
}
return videoFormatProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR
Device::createVideoSessionKHR(VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::VideoSessionKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR> VideoSessionKHR::getMemoryRequirements() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR &&
"Function <vkGetVideoSessionMemoryRequirementsKHR> needs extension <VK_KHR_video_queue> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::VideoGetMemoryPropertiesKHR> videoSessionMemoryRequirements;
uint32_t videoSessionMemoryRequirementsCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR(
static_cast<VkDevice>(m_device), static_cast<VkVideoSessionKHR>(m_videoSession), &videoSessionMemoryRequirementsCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && videoSessionMemoryRequirementsCount)
{
videoSessionMemoryRequirements.resize(videoSessionMemoryRequirementsCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetVideoSessionMemoryRequirementsKHR(
static_cast<VkDevice>(m_device),
static_cast<VkVideoSessionKHR>(m_videoSession),
&videoSessionMemoryRequirementsCount,
reinterpret_cast<VkVideoGetMemoryPropertiesKHR *>(videoSessionMemoryRequirements.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::getMemoryRequirements");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(videoSessionMemoryRequirementsCount <= videoSessionMemoryRequirements.size());
if(videoSessionMemoryRequirementsCount < videoSessionMemoryRequirements.size())
{
videoSessionMemoryRequirements.resize(videoSessionMemoryRequirementsCount);
}
}
return videoSessionMemoryRequirements;
}
VULKAN_HPP_INLINE void VideoSessionKHR::bindMemory(ArrayProxy<const VULKAN_HPP_NAMESPACE::VideoBindMemoryKHR> const &videoSessionBindMemories) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkBindVideoSessionMemoryKHR &&
"Function <vkBindVideoSessionMemoryKHR> needs extension <VK_KHR_video_queue> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkBindVideoSessionMemoryKHR(static_cast<VkDevice>(m_device),
static_cast<VkVideoSessionKHR>(m_videoSession),
videoSessionBindMemories.size(),
reinterpret_cast<const VkVideoBindMemoryKHR *>(videoSessionBindMemories.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionKHR::bindMemory");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR
Device::createVideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::VideoSessionParametersKHR(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void VideoSessionParametersKHR::update(const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR &updateInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkUpdateVideoSessionParametersKHR &&
"Function <vkUpdateVideoSessionParametersKHR> needs extension <VK_KHR_video_queue> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkUpdateVideoSessionParametersKHR(static_cast<VkDevice>(m_device),
static_cast<VkVideoSessionParametersKHR>(m_videoSessionParameters),
reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>(&updateInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::VideoSessionParametersKHR::update");
}
}
VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR &beginInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBeginVideoCodingKHR && "Function <vkCmdBeginVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!");
getDispatcher()->vkCmdBeginVideoCodingKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkVideoBeginCodingInfoKHR *>(&beginInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR &endCodingInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdEndVideoCodingKHR && "Function <vkCmdEndVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!");
getDispatcher()->vkCmdEndVideoCodingKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkVideoEndCodingInfoKHR *>(&endCodingInfo));
}
VULKAN_HPP_INLINE void
CommandBuffer::controlVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR &codingControlInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdControlVideoCodingKHR && "Function <vkCmdControlVideoCodingKHR> needs extension <VK_KHR_video_queue> enabled!");
getDispatcher()->vkCmdControlVideoCodingKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkVideoCodingControlInfoKHR *>(&codingControlInfo));
}
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_decode_queue ===
VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR &frameInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDecodeVideoKHR && "Function <vkCmdDecodeVideoKHR> needs extension <VK_KHR_video_decode_queue> enabled!");
getDispatcher()->vkCmdDecodeVideoKHR(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkVideoDecodeInfoKHR *>(&frameInfo));
}
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_EXT_transform_feedback ===
VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT(uint32_t firstBinding,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &buffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &offsets,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &sizes) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT &&
"Function <vkCmdBindTransformFeedbackBuffersEXT> needs extension <VK_EXT_transform_feedback> enabled!");
if(buffers.size() != offsets.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()");
}
if(!sizes.empty() && buffers.size() != sizes.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()");
}
getDispatcher()->vkCmdBindTransformFeedbackBuffersEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
firstBinding,
buffers.size(),
reinterpret_cast<const VkBuffer *>(buffers.data()),
reinterpret_cast<const VkDeviceSize *>(offsets.data()),
reinterpret_cast<const VkDeviceSize *>(sizes.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT(uint32_t firstCounterBuffer,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &counterBuffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &counterBufferOffsets) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBeginTransformFeedbackEXT &&
"Function <vkCmdBeginTransformFeedbackEXT> needs extension <VK_EXT_transform_feedback> enabled!");
if(!counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()");
}
getDispatcher()->vkCmdBeginTransformFeedbackEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
firstCounterBuffer,
counterBuffers.size(),
reinterpret_cast<const VkBuffer *>(counterBuffers.data()),
reinterpret_cast<const VkDeviceSize *>(counterBufferOffsets.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT(uint32_t firstCounterBuffer,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &counterBuffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &counterBufferOffsets) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdEndTransformFeedbackEXT &&
"Function <vkCmdEndTransformFeedbackEXT> needs extension <VK_EXT_transform_feedback> enabled!");
if(!counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()");
}
getDispatcher()->vkCmdEndTransformFeedbackEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
firstCounterBuffer,
counterBuffers.size(),
reinterpret_cast<const VkBuffer *>(counterBuffers.data()),
reinterpret_cast<const VkDeviceSize *>(counterBufferOffsets.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query,
VULKAN_HPP_NAMESPACE::QueryControlFlags flags,
uint32_t index) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBeginQueryIndexedEXT &&
"Function <vkCmdBeginQueryIndexedEXT> needs extension <VK_EXT_transform_feedback> enabled!");
getDispatcher()->vkCmdBeginQueryIndexedEXT(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkQueryPool>(queryPool), query, static_cast<VkQueryControlFlags>(flags), index);
}
VULKAN_HPP_INLINE void
CommandBuffer::endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdEndQueryIndexedEXT &&
"Function <vkCmdEndQueryIndexedEXT> needs extension <VK_EXT_transform_feedback> enabled!");
getDispatcher()->vkCmdEndQueryIndexedEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkQueryPool>(queryPool), query, index);
}
VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT(uint32_t instanceCount,
uint32_t firstInstance,
VULKAN_HPP_NAMESPACE::Buffer counterBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset,
uint32_t counterOffset,
uint32_t vertexStride) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawIndirectByteCountEXT &&
"Function <vkCmdDrawIndirectByteCountEXT> needs extension <VK_EXT_transform_feedback> enabled!");
getDispatcher()->vkCmdDrawIndirectByteCountEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
instanceCount,
firstInstance,
static_cast<VkBuffer>(counterBuffer),
static_cast<VkDeviceSize>(counterBufferOffset),
counterOffset,
vertexStride);
}
//=== VK_NVX_binary_import ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX
Device::createCuModuleNVX(VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::CuModuleNVX(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX
Device::createCuFunctionNVX(VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::CuFunctionNVX(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void CommandBuffer::cuLaunchKernelNVX(const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX &launchInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCuLaunchKernelNVX && "Function <vkCmdCuLaunchKernelNVX> needs extension <VK_NVX_binary_import> enabled!");
getDispatcher()->vkCmdCuLaunchKernelNVX(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkCuLaunchInfoNVX *>(&launchInfo));
}
//=== VK_NVX_image_view_handle ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t
Device::getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetImageViewHandleNVX && "Function <vkGetImageViewHandleNVX> needs extension <VK_NVX_image_view_handle> enabled!");
return getDispatcher()->vkGetImageViewHandleNVX(static_cast<VkDevice>(m_device), reinterpret_cast<const VkImageViewHandleInfoNVX *>(&info));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX ImageView::getAddressNVX() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetImageViewAddressNVX &&
"Function <vkGetImageViewAddressNVX> needs extension <VK_NVX_image_view_handle> enabled!");
VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetImageViewAddressNVX(
static_cast<VkDevice>(m_device), static_cast<VkImageView>(m_imageView), reinterpret_cast<VkImageViewAddressPropertiesNVX *>(&properties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::ImageView::getAddressNVX");
}
return properties;
}
//=== VK_AMD_draw_indirect_count ===
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawIndirectCountAMD &&
"Function <vkCmdDrawIndirectCountAMD> needs extension <VK_AMD_draw_indirect_count> enabled!");
getDispatcher()->vkCmdDrawIndirectCountAMD(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(buffer),
static_cast<VkDeviceSize>(offset),
static_cast<VkBuffer>(countBuffer),
static_cast<VkDeviceSize>(countBufferOffset),
maxDrawCount,
stride);
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawIndexedIndirectCountAMD &&
"Function <vkCmdDrawIndexedIndirectCountAMD> needs extension <VK_AMD_draw_indirect_count> enabled!");
getDispatcher()->vkCmdDrawIndexedIndirectCountAMD(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(buffer),
static_cast<VkDeviceSize>(offset),
static_cast<VkBuffer>(countBuffer),
static_cast<VkDeviceSize>(countBufferOffset),
maxDrawCount,
stride);
}
//=== VK_AMD_shader_info ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> Pipeline::getShaderInfoAMD(VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,
VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetShaderInfoAMD && "Function <vkGetShaderInfoAMD> needs extension <VK_AMD_shader_info> enabled!");
std::vector<uint8_t> info;
size_t infoSize;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetShaderInfoAMD(static_cast<VkDevice>(m_device),
static_cast<VkPipeline>(m_pipeline),
static_cast<VkShaderStageFlagBits>(shaderStage),
static_cast<VkShaderInfoTypeAMD>(infoType),
&infoSize,
nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && infoSize)
{
info.resize(infoSize);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetShaderInfoAMD(static_cast<VkDevice>(m_device),
static_cast<VkPipeline>(m_pipeline),
static_cast<VkShaderStageFlagBits>(shaderStage),
static_cast<VkShaderInfoTypeAMD>(infoType),
&infoSize,
reinterpret_cast<void *>(info.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getShaderInfoAMD");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(infoSize <= info.size());
if(infoSize < info.size())
{
info.resize(infoSize);
}
}
return info;
}
//=== VK_KHR_dynamic_rendering ===
VULKAN_HPP_INLINE void CommandBuffer::beginRenderingKHR(const VULKAN_HPP_NAMESPACE::RenderingInfo &renderingInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBeginRenderingKHR && "Function <vkCmdBeginRenderingKHR> needs extension <VK_KHR_dynamic_rendering> enabled!");
getDispatcher()->vkCmdBeginRenderingKHR(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkRenderingInfo *>(&renderingInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::endRenderingKHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdEndRenderingKHR && "Function <vkCmdEndRenderingKHR> needs extension <VK_KHR_dynamic_rendering> enabled!");
getDispatcher()->vkCmdEndRenderingKHR(static_cast<VkCommandBuffer>(m_commandBuffer));
}
# if defined(VK_USE_PLATFORM_GGP)
//=== VK_GGP_stream_descriptor_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createStreamDescriptorSurfaceGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
# endif /*VK_USE_PLATFORM_GGP*/
//=== VK_NV_external_memory_capabilities ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV
PhysicalDevice::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) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV &&
"Function <vkGetPhysicalDeviceExternalImageFormatPropertiesNV> needs extension <VK_NV_external_memory_capabilities> enabled!");
VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkFormat>(format),
static_cast<VkImageType>(type),
static_cast<VkImageTiling>(tiling),
static_cast<VkImageUsageFlags>(usage),
static_cast<VkImageCreateFlags>(flags),
static_cast<VkExternalMemoryHandleTypeFlagsNV>(externalHandleType),
reinterpret_cast<VkExternalImageFormatPropertiesNV *>(&externalImageFormatProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV");
}
return externalImageFormatProperties;
}
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_external_memory_win32 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE DeviceMemory::getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryWin32HandleNV &&
"Function <vkGetMemoryWin32HandleNV> needs extension <VK_NV_external_memory_win32> enabled!");
HANDLE handle;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetMemoryWin32HandleNV(
static_cast<VkDevice>(m_device), static_cast<VkDeviceMemory>(m_memory), static_cast<VkExternalMemoryHandleTypeFlagsNV>(handleType), &handle));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::DeviceMemory::getMemoryWin32HandleNV");
}
return handle;
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_get_physical_device_properties2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceFeatures2KHR &&
"Function <vkGetPhysicalDeviceFeatures2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
getDispatcher()->vkGetPhysicalDeviceFeatures2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceFeatures2 *>(&features));
return features;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getFeatures2KHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceFeatures2KHR &&
"Function <vkGetPhysicalDeviceFeatures2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 &features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
getDispatcher()->vkGetPhysicalDeviceFeatures2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceFeatures2 *>(&features));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceProperties2KHR &&
"Function <vkGetPhysicalDeviceProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
getDispatcher()->vkGetPhysicalDeviceProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceProperties2 *>(&properties));
return properties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getProperties2KHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceProperties2KHR &&
"Function <vkGetPhysicalDeviceProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 &properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
getDispatcher()->vkGetPhysicalDeviceProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceProperties2 *>(&properties));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2
PhysicalDevice::getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR &&
"Function <vkGetPhysicalDeviceFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkFormat>(format), reinterpret_cast<VkFormatProperties2 *>(&formatProperties));
return formatProperties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
PhysicalDevice::getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR &&
"Function <vkGetPhysicalDeviceFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::FormatProperties2 &formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
getDispatcher()->vkGetPhysicalDeviceFormatProperties2KHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkFormat>(format), reinterpret_cast<VkFormatProperties2 *>(&formatProperties));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageFormatProperties2
PhysicalDevice::getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 &imageFormatInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR &&
"Function <vkGetPhysicalDeviceImageFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>(&imageFormatInfo),
reinterpret_cast<VkImageFormatProperties2 *>(&imageFormatProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR");
}
return imageFormatProperties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
PhysicalDevice::getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 &imageFormatInfo) const
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::ImageFormatProperties2 &imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceImageFormatProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>(&imageFormatInfo),
reinterpret_cast<VkImageFormatProperties2 *>(&imageFormatProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR");
}
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>
PhysicalDevice::getQueueFamilyProperties2KHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR &&
"Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
uint32_t queueFamilyPropertyCount;
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice), &queueFamilyPropertyCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties(queueFamilyPropertyCount);
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
&queueFamilyPropertyCount,
reinterpret_cast<VkQueueFamilyProperties2 *>(queueFamilyProperties.data()));
VULKAN_HPP_ASSERT(queueFamilyPropertyCount == queueFamilyProperties.size());
return queueFamilyProperties;
}
template<typename StructureChain>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain> PhysicalDevice::getQueueFamilyProperties2KHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR &&
"Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
uint32_t queueFamilyPropertyCount;
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice), &queueFamilyPropertyCount, nullptr);
std::vector<StructureChain> returnVector(queueFamilyPropertyCount);
std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties(queueFamilyPropertyCount);
for(uint32_t i = 0; i < queueFamilyPropertyCount; i++)
{
queueFamilyProperties[i].pNext = returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
}
getDispatcher()->vkGetPhysicalDeviceQueueFamilyProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
&queueFamilyPropertyCount,
reinterpret_cast<VkQueueFamilyProperties2 *>(queueFamilyProperties.data()));
VULKAN_HPP_ASSERT(queueFamilyPropertyCount <= queueFamilyProperties.size());
for(uint32_t i = 0; i < queueFamilyPropertyCount; i++)
{
returnVector[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
}
return returnVector;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR &&
"Function <vkGetPhysicalDeviceMemoryProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>(&memoryProperties));
return memoryProperties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> PhysicalDevice::getMemoryProperties2KHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR &&
"Function <vkGetPhysicalDeviceMemoryProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 &memoryProperties =
structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
getDispatcher()->vkGetPhysicalDeviceMemoryProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>(&memoryProperties));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> PhysicalDevice::getSparseImageFormatProperties2KHR(
const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 &formatInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR &&
"Function <vkGetPhysicalDeviceSparseImageFormatProperties2KHR> needs extension <VK_KHR_get_physical_device_properties2> enabled!");
uint32_t propertyCount;
getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>(&formatInfo),
&propertyCount,
nullptr);
std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2> properties(propertyCount);
getDispatcher()->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>(&formatInfo),
&propertyCount,
reinterpret_cast<VkSparseImageFormatProperties2 *>(properties.data()));
VULKAN_HPP_ASSERT(propertyCount == properties.size());
return properties;
}
//=== VK_KHR_device_group ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags
Device::getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceGroupPeerMemoryFeaturesKHR &&
"Function <vkGetDeviceGroupPeerMemoryFeaturesKHR> needs extension <VK_KHR_device_group> enabled!");
VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
getDispatcher()->vkGetDeviceGroupPeerMemoryFeaturesKHR(static_cast<VkDevice>(m_device),
heapIndex,
localDeviceIndex,
remoteDeviceIndex,
reinterpret_cast<VkPeerMemoryFeatureFlags *>(&peerMemoryFeatures));
return peerMemoryFeatures;
}
VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR(uint32_t deviceMask) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetDeviceMaskKHR && "Function <vkCmdSetDeviceMaskKHR> needs extension <VK_KHR_device_group> enabled!");
getDispatcher()->vkCmdSetDeviceMaskKHR(static_cast<VkCommandBuffer>(m_commandBuffer), deviceMask);
}
VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR(uint32_t baseGroupX,
uint32_t baseGroupY,
uint32_t baseGroupZ,
uint32_t groupCountX,
uint32_t groupCountY,
uint32_t groupCountZ) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDispatchBaseKHR && "Function <vkCmdDispatchBaseKHR> needs extension <VK_KHR_device_group> enabled!");
getDispatcher()->vkCmdDispatchBaseKHR(
static_cast<VkCommandBuffer>(m_commandBuffer), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
}
# if defined(VK_USE_PLATFORM_VI_NN)
//=== VK_NN_vi_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createViSurfaceNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
# endif /*VK_USE_PLATFORM_VI_NN*/
//=== VK_KHR_maintenance1 ===
VULKAN_HPP_INLINE void CommandPool::trimKHR(VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkTrimCommandPoolKHR && "Function <vkTrimCommandPoolKHR> needs extension <VK_KHR_maintenance1> enabled!");
getDispatcher()->vkTrimCommandPoolKHR(
static_cast<VkDevice>(m_device), static_cast<VkCommandPool>(m_commandPool), static_cast<VkCommandPoolTrimFlags>(flags));
}
//=== VK_KHR_device_group_creation ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> Instance::enumeratePhysicalDeviceGroupsKHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR &&
"Function <vkEnumeratePhysicalDeviceGroupsKHR> needs extension <VK_KHR_device_group_creation> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties> physicalDeviceGroupProperties;
uint32_t physicalDeviceGroupCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR(static_cast<VkInstance>(m_instance), &physicalDeviceGroupCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && physicalDeviceGroupCount)
{
physicalDeviceGroupProperties.resize(physicalDeviceGroupCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEnumeratePhysicalDeviceGroupsKHR(
static_cast<VkInstance>(m_instance),
&physicalDeviceGroupCount,
reinterpret_cast<VkPhysicalDeviceGroupProperties *>(physicalDeviceGroupProperties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(physicalDeviceGroupCount <= physicalDeviceGroupProperties.size());
if(physicalDeviceGroupCount < physicalDeviceGroupProperties.size())
{
physicalDeviceGroupProperties.resize(physicalDeviceGroupCount);
}
}
return physicalDeviceGroupProperties;
}
//=== VK_KHR_external_memory_capabilities ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR(
const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo &externalBufferInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceExternalBufferPropertiesKHR &&
"Function <vkGetPhysicalDeviceExternalBufferPropertiesKHR> needs extension <VK_KHR_external_memory_capabilities> enabled!");
VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
getDispatcher()->vkGetPhysicalDeviceExternalBufferPropertiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>(&externalBufferInfo),
reinterpret_cast<VkExternalBufferProperties *>(&externalBufferProperties));
return externalBufferProperties;
}
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_memory_win32 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE
Device::getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR &getWin32HandleInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryWin32HandleKHR &&
"Function <vkGetMemoryWin32HandleKHR> needs extension <VK_KHR_external_memory_win32> enabled!");
HANDLE handle;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetMemoryWin32HandleKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>(&getWin32HandleInfo), &handle));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR");
}
return handle;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR
Device::getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR &&
"Function <vkGetMemoryWin32HandlePropertiesKHR> needs extension <VK_KHR_external_memory_win32> enabled!");
VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetMemoryWin32HandlePropertiesKHR(static_cast<VkDevice>(m_device),
static_cast<VkExternalMemoryHandleTypeFlagBits>(handleType),
handle,
reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>(&memoryWin32HandleProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR");
}
return memoryWin32HandleProperties;
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_memory_fd ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR &getFdInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryFdKHR && "Function <vkGetMemoryFdKHR> needs extension <VK_KHR_external_memory_fd> enabled!");
int fd;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetMemoryFdKHR(static_cast<VkDevice>(m_device), reinterpret_cast<const VkMemoryGetFdInfoKHR *>(&getFdInfo), &fd));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR");
}
return fd;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR
Device::getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryFdPropertiesKHR &&
"Function <vkGetMemoryFdPropertiesKHR> needs extension <VK_KHR_external_memory_fd> enabled!");
VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetMemoryFdPropertiesKHR(static_cast<VkDevice>(m_device),
static_cast<VkExternalMemoryHandleTypeFlagBits>(handleType),
fd,
reinterpret_cast<VkMemoryFdPropertiesKHR *>(&memoryFdProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR");
}
return memoryFdProperties;
}
//=== VK_KHR_external_semaphore_capabilities ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR(
const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo &externalSemaphoreInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR &&
"Function <vkGetPhysicalDeviceExternalSemaphorePropertiesKHR> needs extension <VK_KHR_external_semaphore_capabilities> enabled!");
VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
getDispatcher()->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>(&externalSemaphoreInfo),
reinterpret_cast<VkExternalSemaphoreProperties *>(&externalSemaphoreProperties));
return externalSemaphoreProperties;
}
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_semaphore_win32 ===
VULKAN_HPP_INLINE void
Device::importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR &importSemaphoreWin32HandleInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkImportSemaphoreWin32HandleKHR &&
"Function <vkImportSemaphoreWin32HandleKHR> needs extension <VK_KHR_external_semaphore_win32> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkImportSemaphoreWin32HandleKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>(&importSemaphoreWin32HandleInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE
Device::getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR &getWin32HandleInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetSemaphoreWin32HandleKHR &&
"Function <vkGetSemaphoreWin32HandleKHR> needs extension <VK_KHR_external_semaphore_win32> enabled!");
HANDLE handle;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetSemaphoreWin32HandleKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>(&getWin32HandleInfo), &handle));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR");
}
return handle;
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_semaphore_fd ===
VULKAN_HPP_INLINE void Device::importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR &importSemaphoreFdInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkImportSemaphoreFdKHR &&
"Function <vkImportSemaphoreFdKHR> needs extension <VK_KHR_external_semaphore_fd> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkImportSemaphoreFdKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>(&importSemaphoreFdInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR &getFdInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetSemaphoreFdKHR && "Function <vkGetSemaphoreFdKHR> needs extension <VK_KHR_external_semaphore_fd> enabled!");
int fd;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetSemaphoreFdKHR(static_cast<VkDevice>(m_device), reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>(&getFdInfo), &fd));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR");
}
return fd;
}
//=== VK_KHR_push_descriptor ===
VULKAN_HPP_INLINE void
CommandBuffer::pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
VULKAN_HPP_NAMESPACE::PipelineLayout layout,
uint32_t set,
ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const &descriptorWrites) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdPushDescriptorSetKHR &&
"Function <vkCmdPushDescriptorSetKHR> needs extension <VK_KHR_push_descriptor> enabled!");
getDispatcher()->vkCmdPushDescriptorSetKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkPipelineBindPoint>(pipelineBindPoint),
static_cast<VkPipelineLayout>(layout),
set,
descriptorWrites.size(),
reinterpret_cast<const VkWriteDescriptorSet *>(descriptorWrites.data()));
}
template<typename DataType>
VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
VULKAN_HPP_NAMESPACE::PipelineLayout layout,
uint32_t set,
DataType const &data) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR &&
"Function <vkCmdPushDescriptorSetWithTemplateKHR> needs extension <VK_KHR_push_descriptor> enabled!");
getDispatcher()->vkCmdPushDescriptorSetWithTemplateKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate),
static_cast<VkPipelineLayout>(layout),
set,
reinterpret_cast<const void *>(&data));
}
//=== VK_EXT_conditional_rendering ===
VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT(
const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT &conditionalRenderingBegin) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBeginConditionalRenderingEXT &&
"Function <vkCmdBeginConditionalRenderingEXT> needs extension <VK_EXT_conditional_rendering> enabled!");
getDispatcher()->vkCmdBeginConditionalRenderingEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>(&conditionalRenderingBegin));
}
VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdEndConditionalRenderingEXT &&
"Function <vkCmdEndConditionalRenderingEXT> needs extension <VK_EXT_conditional_rendering> enabled!");
getDispatcher()->vkCmdEndConditionalRenderingEXT(static_cast<VkCommandBuffer>(m_commandBuffer));
}
//=== VK_KHR_descriptor_update_template ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate
Device::createDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DescriptorUpdateTemplate(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void
Device::destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkDestroyDescriptorUpdateTemplateKHR &&
"Function <vkDestroyDescriptorUpdateTemplateKHR> needs extension <VK_KHR_descriptor_update_template> enabled!");
getDispatcher()->vkDestroyDescriptorUpdateTemplateKHR(
static_cast<VkDevice>(m_device),
static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)));
}
template<typename DataType>
VULKAN_HPP_INLINE void DescriptorSet::updateWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
DataType const &data) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkUpdateDescriptorSetWithTemplateKHR &&
"Function <vkUpdateDescriptorSetWithTemplateKHR> needs extension <VK_KHR_descriptor_update_template> enabled!");
getDispatcher()->vkUpdateDescriptorSetWithTemplateKHR(static_cast<VkDevice>(m_device),
static_cast<VkDescriptorSet>(m_descriptorSet),
static_cast<VkDescriptorUpdateTemplate>(descriptorUpdateTemplate),
reinterpret_cast<const void *>(&data));
}
//=== VK_NV_clip_space_w_scaling ===
VULKAN_HPP_INLINE void
CommandBuffer::setViewportWScalingNV(uint32_t firstViewport,
ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const &viewportWScalings) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetViewportWScalingNV &&
"Function <vkCmdSetViewportWScalingNV> needs extension <VK_NV_clip_space_w_scaling> enabled!");
getDispatcher()->vkCmdSetViewportWScalingNV(static_cast<VkCommandBuffer>(m_commandBuffer),
firstViewport,
viewportWScalings.size(),
reinterpret_cast<const VkViewportWScalingNV *>(viewportWScalings.data()));
}
# if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
//=== VK_EXT_acquire_xlib_display ===
VULKAN_HPP_INLINE void PhysicalDevice::acquireXlibDisplayEXT(Display &dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkAcquireXlibDisplayEXT &&
"Function <vkAcquireXlibDisplayEXT> needs extension <VK_EXT_acquire_xlib_display> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkAcquireXlibDisplayEXT(static_cast<VkPhysicalDevice>(m_physicalDevice), &dpy, static_cast<VkDisplayKHR>(display)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR PhysicalDevice::getRandROutputDisplayEXT(Display &dpy,
RROutput rrOutput) const
{
return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR(*this, dpy, rrOutput);
}
# endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
//=== VK_EXT_display_surface_counter ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT
PhysicalDevice::getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT &&
"Function <vkGetPhysicalDeviceSurfaceCapabilities2EXT> needs extension <VK_EXT_display_surface_counter> enabled!");
VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2EXT(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkSurfaceKHR>(surface),
reinterpret_cast<VkSurfaceCapabilities2EXT *>(&surfaceCapabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT");
}
return surfaceCapabilities;
}
//=== VK_EXT_display_control ===
VULKAN_HPP_INLINE void Device::displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,
const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT &displayPowerInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkDisplayPowerControlEXT && "Function <vkDisplayPowerControlEXT> needs extension <VK_EXT_display_control> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkDisplayPowerControlEXT(
static_cast<VkDevice>(m_device), static_cast<VkDisplayKHR>(display), reinterpret_cast<const VkDisplayPowerInfoEXT *>(&displayPowerInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Fence
Device::registerEventEXT(VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const &deviceEventInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::Fence(*this, deviceEventInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Fence
Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Fence(*this, display, displayEventInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t SwapchainKHR::getCounterEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetSwapchainCounterEXT && "Function <vkGetSwapchainCounterEXT> needs extension <VK_EXT_display_control> enabled!");
uint64_t counterValue;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetSwapchainCounterEXT(
static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain), static_cast<VkSurfaceCounterFlagBitsEXT>(counter), &counterValue));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getCounterEXT");
}
return counterValue;
}
//=== VK_GOOGLE_display_timing ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE SwapchainKHR::getRefreshCycleDurationGOOGLE() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetRefreshCycleDurationGOOGLE &&
"Function <vkGetRefreshCycleDurationGOOGLE> needs extension <VK_GOOGLE_display_timing> enabled!");
VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetRefreshCycleDurationGOOGLE(static_cast<VkDevice>(m_device),
static_cast<VkSwapchainKHR>(m_swapchain),
reinterpret_cast<VkRefreshCycleDurationGOOGLE *>(&displayTimingProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getRefreshCycleDurationGOOGLE");
}
return displayTimingProperties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> SwapchainKHR::getPastPresentationTimingGOOGLE() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPastPresentationTimingGOOGLE &&
"Function <vkGetPastPresentationTimingGOOGLE> needs extension <VK_GOOGLE_display_timing> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE> presentationTimings;
uint32_t presentationTimingCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPastPresentationTimingGOOGLE(
static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain), &presentationTimingCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && presentationTimingCount)
{
presentationTimings.resize(presentationTimingCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPastPresentationTimingGOOGLE(static_cast<VkDevice>(m_device),
static_cast<VkSwapchainKHR>(m_swapchain),
&presentationTimingCount,
reinterpret_cast<VkPastPresentationTimingGOOGLE *>(presentationTimings.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getPastPresentationTimingGOOGLE");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(presentationTimingCount <= presentationTimings.size());
if(presentationTimingCount < presentationTimings.size())
{
presentationTimings.resize(presentationTimingCount);
}
}
return presentationTimings;
}
//=== VK_EXT_discard_rectangles ===
VULKAN_HPP_INLINE void
CommandBuffer::setDiscardRectangleEXT(uint32_t firstDiscardRectangle,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &discardRectangles) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetDiscardRectangleEXT &&
"Function <vkCmdSetDiscardRectangleEXT> needs extension <VK_EXT_discard_rectangles> enabled!");
getDispatcher()->vkCmdSetDiscardRectangleEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
firstDiscardRectangle,
discardRectangles.size(),
reinterpret_cast<const VkRect2D *>(discardRectangles.data()));
}
//=== VK_EXT_hdr_metadata ===
VULKAN_HPP_INLINE void Device::setHdrMetadataEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const &swapchains,
ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const &metadata) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSetHdrMetadataEXT && "Function <vkSetHdrMetadataEXT> needs extension <VK_EXT_hdr_metadata> enabled!");
if(swapchains.size() != metadata.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()");
}
getDispatcher()->vkSetHdrMetadataEXT(static_cast<VkDevice>(m_device),
swapchains.size(),
reinterpret_cast<const VkSwapchainKHR *>(swapchains.data()),
reinterpret_cast<const VkHdrMetadataEXT *>(metadata.data()));
}
//=== VK_KHR_create_renderpass2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::RenderPass
Device::createRenderPass2KHR(VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::RenderPass(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo &renderPassBegin,
const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &subpassBeginInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBeginRenderPass2KHR &&
"Function <vkCmdBeginRenderPass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!");
getDispatcher()->vkCmdBeginRenderPass2KHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkRenderPassBeginInfo *>(&renderPassBegin),
reinterpret_cast<const VkSubpassBeginInfo *>(&subpassBeginInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &subpassBeginInfo,
const VULKAN_HPP_NAMESPACE::SubpassEndInfo &subpassEndInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdNextSubpass2KHR && "Function <vkCmdNextSubpass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!");
getDispatcher()->vkCmdNextSubpass2KHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkSubpassBeginInfo *>(&subpassBeginInfo),
reinterpret_cast<const VkSubpassEndInfo *>(&subpassEndInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo &subpassEndInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdEndRenderPass2KHR && "Function <vkCmdEndRenderPass2KHR> needs extension <VK_KHR_create_renderpass2> enabled!");
getDispatcher()->vkCmdEndRenderPass2KHR(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkSubpassEndInfo *>(&subpassEndInfo));
}
//=== VK_KHR_shared_presentable_image ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::getStatus() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetSwapchainStatusKHR &&
"Function <vkGetSwapchainStatusKHR> needs extension <VK_KHR_shared_presentable_image> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetSwapchainStatusKHR(static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::getStatus");
}
return result;
}
//=== VK_KHR_external_fence_capabilities ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties
PhysicalDevice::getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo &externalFenceInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceExternalFencePropertiesKHR &&
"Function <vkGetPhysicalDeviceExternalFencePropertiesKHR> needs extension <VK_KHR_external_fence_capabilities> enabled!");
VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
getDispatcher()->vkGetPhysicalDeviceExternalFencePropertiesKHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>(&externalFenceInfo),
reinterpret_cast<VkExternalFenceProperties *>(&externalFenceProperties));
return externalFenceProperties;
}
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_KHR_external_fence_win32 ===
VULKAN_HPP_INLINE void Device::importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR &importFenceWin32HandleInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkImportFenceWin32HandleKHR &&
"Function <vkImportFenceWin32HandleKHR> needs extension <VK_KHR_external_fence_win32> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkImportFenceWin32HandleKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>(&importFenceWin32HandleInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE HANDLE
Device::getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR &getWin32HandleInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetFenceWin32HandleKHR &&
"Function <vkGetFenceWin32HandleKHR> needs extension <VK_KHR_external_fence_win32> enabled!");
HANDLE handle;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetFenceWin32HandleKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>(&getWin32HandleInfo), &handle));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR");
}
return handle;
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_KHR_external_fence_fd ===
VULKAN_HPP_INLINE void Device::importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR &importFenceFdInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkImportFenceFdKHR && "Function <vkImportFenceFdKHR> needs extension <VK_KHR_external_fence_fd> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkImportFenceFdKHR(static_cast<VkDevice>(m_device), reinterpret_cast<const VkImportFenceFdInfoKHR *>(&importFenceFdInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE int Device::getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR &getFdInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetFenceFdKHR && "Function <vkGetFenceFdKHR> needs extension <VK_KHR_external_fence_fd> enabled!");
int fd;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetFenceFdKHR(static_cast<VkDevice>(m_device), reinterpret_cast<const VkFenceGetFdInfoKHR *>(&getFdInfo), &fd));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR");
}
return fd;
}
//=== VK_KHR_performance_query ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<std::vector<PerformanceCounterKHR>, std::vector<PerformanceCounterDescriptionKHR>>
PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR &&
"Function <vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR> needs extension <VK_KHR_performance_query> enabled!");
std::pair<std::vector<PerformanceCounterKHR>, std::vector<PerformanceCounterDescriptionKHR>> data;
std::vector<PerformanceCounterKHR> &counters = data.first;
std::vector<PerformanceCounterDescriptionKHR> &counterDescriptions = data.second;
uint32_t counterCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), queueFamilyIndex, &counterCount, nullptr, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && counterCount)
{
counters.resize(counterCount);
counterDescriptions.resize(counterCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice),
queueFamilyIndex,
&counterCount,
reinterpret_cast<VkPerformanceCounterKHR *>(counters.data()),
reinterpret_cast<VkPerformanceCounterDescriptionKHR *>(counterDescriptions.data())));
VULKAN_HPP_ASSERT(counterCount <= counters.size());
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && (counterCount < counters.size()))
{
counters.resize(counterCount);
counterDescriptions.resize(counterCount);
}
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR");
}
return data;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR(
const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR &performanceQueryCreateInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR &&
"Function <vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR> needs extension <VK_KHR_performance_query> enabled!");
uint32_t numPasses;
getDispatcher()->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>(&performanceQueryCreateInfo),
&numPasses);
return numPasses;
}
VULKAN_HPP_INLINE void Device::acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR &info) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkAcquireProfilingLockKHR &&
"Function <vkAcquireProfilingLockKHR> needs extension <VK_KHR_performance_query> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkAcquireProfilingLockKHR(static_cast<VkDevice>(m_device), reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>(&info)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR");
}
}
VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkReleaseProfilingLockKHR &&
"Function <vkReleaseProfilingLockKHR> needs extension <VK_KHR_performance_query> enabled!");
getDispatcher()->vkReleaseProfilingLockKHR(static_cast<VkDevice>(m_device));
}
//=== VK_KHR_get_surface_capabilities2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR
PhysicalDevice::getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR &&
"Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> needs extension <VK_KHR_get_surface_capabilities2> enabled!");
VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>(&surfaceInfo),
reinterpret_cast<VkSurfaceCapabilities2KHR *>(&surfaceCapabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR");
}
return surfaceCapabilities;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...>
PhysicalDevice::getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR &surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfaceCapabilities2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>(&surfaceInfo),
reinterpret_cast<VkSurfaceCapabilities2KHR *>(&surfaceCapabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR");
}
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>
PhysicalDevice::getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR &&
"Function <vkGetPhysicalDeviceSurfaceFormats2KHR> needs extension <VK_KHR_get_surface_capabilities2> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats;
uint32_t surfaceFormatCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>(&surfaceInfo),
&surfaceFormatCount,
nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && surfaceFormatCount)
{
surfaceFormats.resize(surfaceFormatCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfaceFormats2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>(&surfaceInfo),
&surfaceFormatCount,
reinterpret_cast<VkSurfaceFormat2KHR *>(surfaceFormats.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(surfaceFormatCount <= surfaceFormats.size());
if(surfaceFormatCount < surfaceFormats.size())
{
surfaceFormats.resize(surfaceFormatCount);
}
}
return surfaceFormats;
}
//=== VK_KHR_get_display_properties2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> PhysicalDevice::getDisplayProperties2KHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR &&
"Function <vkGetPhysicalDeviceDisplayProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceDisplayProperties2KHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> PhysicalDevice::getDisplayPlaneProperties2KHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR &&
"Function <vkGetPhysicalDeviceDisplayPlaneProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> DisplayKHR::getModeProperties2() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDisplayModeProperties2KHR &&
"Function <vkGetDisplayModeProperties2KHR> needs extension <VK_KHR_get_display_properties2> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetDisplayModeProperties2KHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkDisplayKHR>(m_display), &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetDisplayModeProperties2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkDisplayKHR>(m_display),
&propertyCount,
reinterpret_cast<VkDisplayModeProperties2KHR *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::getModeProperties2");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR
PhysicalDevice::getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR &displayPlaneInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDisplayPlaneCapabilities2KHR &&
"Function <vkGetDisplayPlaneCapabilities2KHR> needs extension <VK_KHR_get_display_properties2> enabled!");
VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetDisplayPlaneCapabilities2KHR(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkDisplayPlaneInfo2KHR *>(&displayPlaneInfo),
reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>(&capabilities)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR");
}
return capabilities;
}
# if defined(VK_USE_PLATFORM_IOS_MVK)
//=== VK_MVK_ios_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createIOSSurfaceMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
# endif /*VK_USE_PLATFORM_IOS_MVK*/
# if defined(VK_USE_PLATFORM_MACOS_MVK)
//=== VK_MVK_macos_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createMacOSSurfaceMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
# endif /*VK_USE_PLATFORM_MACOS_MVK*/
//=== VK_EXT_debug_utils ===
VULKAN_HPP_INLINE void Device::setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT &nameInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSetDebugUtilsObjectNameEXT &&
"Function <vkSetDebugUtilsObjectNameEXT> needs extension <VK_EXT_debug_utils> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkSetDebugUtilsObjectNameEXT(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>(&nameInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT");
}
}
VULKAN_HPP_INLINE void Device::setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT &tagInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSetDebugUtilsObjectTagEXT &&
"Function <vkSetDebugUtilsObjectTagEXT> needs extension <VK_EXT_debug_utils> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkSetDebugUtilsObjectTagEXT(static_cast<VkDevice>(m_device), reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>(&tagInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT");
}
}
VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT &labelInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkQueueBeginDebugUtilsLabelEXT &&
"Function <vkQueueBeginDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!");
getDispatcher()->vkQueueBeginDebugUtilsLabelEXT(static_cast<VkQueue>(m_queue), reinterpret_cast<const VkDebugUtilsLabelEXT *>(&labelInfo));
}
VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkQueueEndDebugUtilsLabelEXT &&
"Function <vkQueueEndDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!");
getDispatcher()->vkQueueEndDebugUtilsLabelEXT(static_cast<VkQueue>(m_queue));
}
VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT &labelInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkQueueInsertDebugUtilsLabelEXT &&
"Function <vkQueueInsertDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!");
getDispatcher()->vkQueueInsertDebugUtilsLabelEXT(static_cast<VkQueue>(m_queue), reinterpret_cast<const VkDebugUtilsLabelEXT *>(&labelInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT &labelInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBeginDebugUtilsLabelEXT &&
"Function <vkCmdBeginDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!");
getDispatcher()->vkCmdBeginDebugUtilsLabelEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkDebugUtilsLabelEXT *>(&labelInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdEndDebugUtilsLabelEXT && "Function <vkCmdEndDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!");
getDispatcher()->vkCmdEndDebugUtilsLabelEXT(static_cast<VkCommandBuffer>(m_commandBuffer));
}
VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT &labelInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdInsertDebugUtilsLabelEXT &&
"Function <vkCmdInsertDebugUtilsLabelEXT> needs extension <VK_EXT_debug_utils> enabled!");
getDispatcher()->vkCmdInsertDebugUtilsLabelEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkDebugUtilsLabelEXT *>(&labelInfo));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT
Instance::createDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DebugUtilsMessengerEXT(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void
Instance::submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,
const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT &callbackData) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSubmitDebugUtilsMessageEXT &&
"Function <vkSubmitDebugUtilsMessageEXT> needs extension <VK_EXT_debug_utils> enabled!");
getDispatcher()->vkSubmitDebugUtilsMessageEXT(static_cast<VkInstance>(m_instance),
static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>(messageSeverity),
static_cast<VkDebugUtilsMessageTypeFlagsEXT>(messageTypes),
reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>(&callbackData));
}
# if defined(VK_USE_PLATFORM_ANDROID_KHR)
//=== VK_ANDROID_external_memory_android_hardware_buffer ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID
Device::getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer &buffer) const
{
VULKAN_HPP_ASSERT(
getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID &&
"Function <vkGetAndroidHardwareBufferPropertiesANDROID> needs extension <VK_ANDROID_external_memory_android_hardware_buffer> enabled!");
VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID(
static_cast<VkDevice>(m_device), &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>(&properties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID");
}
return properties;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD StructureChain<X, Y, Z...> Device::getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer &buffer) const
{
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID &properties =
structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetAndroidHardwareBufferPropertiesANDROID(
static_cast<VkDevice>(m_device), &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>(&properties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID");
}
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE struct AHardwareBuffer *
Device::getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID &info) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID &&
"Function <vkGetMemoryAndroidHardwareBufferANDROID> needs extension <VK_ANDROID_external_memory_android_hardware_buffer> enabled!");
struct AHardwareBuffer *buffer;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetMemoryAndroidHardwareBufferANDROID(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>(&info), &buffer));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID");
}
return buffer;
}
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
//=== VK_EXT_sample_locations ===
VULKAN_HPP_INLINE void
CommandBuffer::setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT &sampleLocationsInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetSampleLocationsEXT &&
"Function <vkCmdSetSampleLocationsEXT> needs extension <VK_EXT_sample_locations> enabled!");
getDispatcher()->vkCmdSetSampleLocationsEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkSampleLocationsInfoEXT *>(&sampleLocationsInfo));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT
PhysicalDevice::getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT &&
"Function <vkGetPhysicalDeviceMultisamplePropertiesEXT> needs extension <VK_EXT_sample_locations> enabled!");
VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
getDispatcher()->vkGetPhysicalDeviceMultisamplePropertiesEXT(static_cast<VkPhysicalDevice>(m_physicalDevice),
static_cast<VkSampleCountFlagBits>(samples),
reinterpret_cast<VkMultisamplePropertiesEXT *>(&multisampleProperties));
return multisampleProperties;
}
//=== VK_KHR_get_memory_requirements2 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetImageMemoryRequirements2KHR &&
"Function <vkGetImageMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!");
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetImageMemoryRequirements2KHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetImageMemoryRequirements2KHR &&
"Function <vkGetImageMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetImageMemoryRequirements2KHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetBufferMemoryRequirements2KHR &&
"Function <vkGetBufferMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!");
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetBufferMemoryRequirements2KHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetBufferMemoryRequirements2KHR &&
"Function <vkGetBufferMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetBufferMemoryRequirements2KHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
Device::getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetImageSparseMemoryRequirements2KHR &&
"Function <vkGetImageSparseMemoryRequirements2KHR> needs extension <VK_KHR_get_memory_requirements2> enabled!");
uint32_t sparseMemoryRequirementCount;
getDispatcher()->vkGetImageSparseMemoryRequirements2KHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>(&info), &sparseMemoryRequirementCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements(sparseMemoryRequirementCount);
getDispatcher()->vkGetImageSparseMemoryRequirements2KHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>(&info),
&sparseMemoryRequirementCount,
reinterpret_cast<VkSparseImageMemoryRequirements2 *>(sparseMemoryRequirements.data()));
VULKAN_HPP_ASSERT(sparseMemoryRequirementCount == sparseMemoryRequirements.size());
return sparseMemoryRequirements;
}
//=== VK_KHR_acceleration_structure ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR
Device::createAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureKHR(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR(
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const &infos,
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR *const> const &pBuildRangeInfos) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBuildAccelerationStructuresKHR &&
"Function <vkCmdBuildAccelerationStructuresKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
if(infos.size() != pBuildRangeInfos.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()");
}
getDispatcher()->vkCmdBuildAccelerationStructuresKHR(
static_cast<VkCommandBuffer>(m_commandBuffer),
infos.size(),
reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>(infos.data()),
reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR *const *>(pBuildRangeInfos.data()));
}
VULKAN_HPP_INLINE void
CommandBuffer::buildAccelerationStructuresIndirectKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const &infos,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const &indirectDeviceAddresses,
ArrayProxy<const uint32_t> const &indirectStrides,
ArrayProxy<const uint32_t *const> const &pMaxPrimitiveCounts) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR &&
"Function <vkCmdBuildAccelerationStructuresIndirectKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
if(infos.size() != indirectDeviceAddresses.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING
"::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectDeviceAddresses.size()");
}
if(infos.size() != indirectStrides.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectStrides.size()");
}
if(infos.size() != pMaxPrimitiveCounts.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()");
}
getDispatcher()->vkCmdBuildAccelerationStructuresIndirectKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
infos.size(),
reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>(infos.data()),
reinterpret_cast<const VkDeviceAddress *>(indirectDeviceAddresses.data()),
indirectStrides.data(),
pMaxPrimitiveCounts.data());
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::buildAccelerationStructuresKHR(
VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const &infos,
ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR *const> const &pBuildRangeInfos) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkBuildAccelerationStructuresKHR &&
"Function <vkBuildAccelerationStructuresKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
if(infos.size() != pBuildRangeInfos.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()");
}
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBuildAccelerationStructuresKHR(
static_cast<VkDevice>(m_device),
static_cast<VkDeferredOperationKHR>(deferredOperation),
infos.size(),
reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>(infos.data()),
reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR *const *>(pBuildRangeInfos.data())));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR) &&
(result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR");
}
return result;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
Device::copyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR &info) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCopyAccelerationStructureKHR &&
"Function <vkCopyAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkCopyAccelerationStructureKHR(static_cast<VkDevice>(m_device),
static_cast<VkDeferredOperationKHR>(deferredOperation),
reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>(&info)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR) &&
(result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR");
}
return result;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
Device::copyAccelerationStructureToMemoryKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR &info) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCopyAccelerationStructureToMemoryKHR &&
"Function <vkCopyAccelerationStructureToMemoryKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkCopyAccelerationStructureToMemoryKHR(static_cast<VkDevice>(m_device),
static_cast<VkDeferredOperationKHR>(deferredOperation),
reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>(&info)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR) &&
(result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR");
}
return result;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
Device::copyMemoryToAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR &info) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCopyMemoryToAccelerationStructureKHR &&
"Function <vkCopyMemoryToAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkCopyMemoryToAccelerationStructureKHR(static_cast<VkDevice>(m_device),
static_cast<VkDeferredOperationKHR>(deferredOperation),
reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>(&info)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR) &&
(result != VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR");
}
return result;
}
template<typename DataType>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType>
Device::writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &accelerationStructures,
VULKAN_HPP_NAMESPACE::QueryType queryType,
size_t dataSize,
size_t stride) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR &&
"Function <vkWriteAccelerationStructuresPropertiesKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
VULKAN_HPP_ASSERT(dataSize % sizeof(DataType) == 0);
std::vector<DataType> data(dataSize / sizeof(DataType));
Result result = static_cast<Result>(
getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR(static_cast<VkDevice>(m_device),
accelerationStructures.size(),
reinterpret_cast<const VkAccelerationStructureKHR *>(accelerationStructures.data()),
static_cast<VkQueryType>(queryType),
data.size() * sizeof(DataType),
reinterpret_cast<void *>(data.data()),
stride));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR");
}
return data;
}
template<typename DataType>
VULKAN_HPP_NODISCARD DataType
Device::writeAccelerationStructuresPropertyKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &accelerationStructures,
VULKAN_HPP_NAMESPACE::QueryType queryType,
size_t stride) const
{
DataType data;
Result result = static_cast<Result>(
getDispatcher()->vkWriteAccelerationStructuresPropertiesKHR(static_cast<VkDevice>(m_device),
accelerationStructures.size(),
reinterpret_cast<const VkAccelerationStructureKHR *>(accelerationStructures.data()),
static_cast<VkQueryType>(queryType),
sizeof(DataType),
reinterpret_cast<void *>(&data),
stride));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR");
}
return data;
}
VULKAN_HPP_INLINE void
CommandBuffer::copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCopyAccelerationStructureKHR &&
"Function <vkCmdCopyAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
getDispatcher()->vkCmdCopyAccelerationStructureKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>(&info));
}
VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR(
const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR &&
"Function <vkCmdCopyAccelerationStructureToMemoryKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
getDispatcher()->vkCmdCopyAccelerationStructureToMemoryKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>(&info));
}
VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR(
const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR &&
"Function <vkCmdCopyMemoryToAccelerationStructureKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
getDispatcher()->vkCmdCopyMemoryToAccelerationStructureKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>(&info));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
Device::getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR &&
"Function <vkGetAccelerationStructureDeviceAddressKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>(getDispatcher()->vkGetAccelerationStructureDeviceAddressKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>(&info)));
}
VULKAN_HPP_INLINE void
CommandBuffer::writeAccelerationStructuresPropertiesKHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const &accelerationStructures,
VULKAN_HPP_NAMESPACE::QueryType queryType,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t firstQuery) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR &&
"Function <vkCmdWriteAccelerationStructuresPropertiesKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
accelerationStructures.size(),
reinterpret_cast<const VkAccelerationStructureKHR *>(accelerationStructures.data()),
static_cast<VkQueryType>(queryType),
static_cast<VkQueryPool>(queryPool),
firstQuery);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR Device::getAccelerationStructureCompatibilityKHR(
const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR &versionInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR &&
"Function <vkGetDeviceAccelerationStructureCompatibilityKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility;
getDispatcher()->vkGetDeviceAccelerationStructureCompatibilityKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>(&versionInfo),
reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>(&compatibility));
return compatibility;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR
Device::getAccelerationStructureBuildSizesKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,
const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR &buildInfo,
ArrayProxy<const uint32_t> const &maxPrimitiveCounts) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetAccelerationStructureBuildSizesKHR &&
"Function <vkGetAccelerationStructureBuildSizesKHR> needs extension <VK_KHR_acceleration_structure> enabled!");
if(maxPrimitiveCounts.size() != buildInfo.geometryCount)
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureBuildSizesKHR: maxPrimitiveCounts.size() != buildInfo.geometryCount");
}
VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo;
getDispatcher()->vkGetAccelerationStructureBuildSizesKHR(static_cast<VkDevice>(m_device),
static_cast<VkAccelerationStructureBuildTypeKHR>(buildType),
reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>(&buildInfo),
maxPrimitiveCounts.data(),
reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>(&sizeInfo));
return sizeInfo;
}
//=== VK_KHR_sampler_ycbcr_conversion ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion
Device::createSamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SamplerYcbcrConversion(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void
Device::destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkDestroySamplerYcbcrConversionKHR &&
"Function <vkDestroySamplerYcbcrConversionKHR> needs extension <VK_KHR_sampler_ycbcr_conversion> enabled!");
getDispatcher()->vkDestroySamplerYcbcrConversionKHR(
static_cast<VkDevice>(m_device),
static_cast<VkSamplerYcbcrConversion>(ycbcrConversion),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)));
}
//=== VK_KHR_bind_memory2 ===
VULKAN_HPP_INLINE void Device::bindBufferMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const &bindInfos) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkBindBufferMemory2KHR && "Function <vkBindBufferMemory2KHR> needs extension <VK_KHR_bind_memory2> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBindBufferMemory2KHR(
static_cast<VkDevice>(m_device), bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>(bindInfos.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR");
}
}
VULKAN_HPP_INLINE void Device::bindImageMemory2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const &bindInfos) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkBindImageMemory2KHR && "Function <vkBindImageMemory2KHR> needs extension <VK_KHR_bind_memory2> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBindImageMemory2KHR(
static_cast<VkDevice>(m_device), bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>(bindInfos.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR");
}
}
//=== VK_EXT_image_drm_format_modifier ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT Image::getDrmFormatModifierPropertiesEXT() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT &&
"Function <vkGetImageDrmFormatModifierPropertiesEXT> needs extension <VK_EXT_image_drm_format_modifier> enabled!");
VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetImageDrmFormatModifierPropertiesEXT(
static_cast<VkDevice>(m_device), static_cast<VkImage>(m_image), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>(&properties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Image::getDrmFormatModifierPropertiesEXT");
}
return properties;
}
//=== VK_EXT_validation_cache ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT
Device::createValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::ValidationCacheEXT(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void ValidationCacheEXT::merge(ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const &srcCaches) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkMergeValidationCachesEXT &&
"Function <vkMergeValidationCachesEXT> needs extension <VK_EXT_validation_cache> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkMergeValidationCachesEXT(static_cast<VkDevice>(m_device),
static_cast<VkValidationCacheEXT>(m_validationCache),
srcCaches.size(),
reinterpret_cast<const VkValidationCacheEXT *>(srcCaches.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::merge");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<uint8_t> ValidationCacheEXT::getData() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetValidationCacheDataEXT &&
"Function <vkGetValidationCacheDataEXT> needs extension <VK_EXT_validation_cache> enabled!");
std::vector<uint8_t> data;
size_t dataSize;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetValidationCacheDataEXT(
static_cast<VkDevice>(m_device), static_cast<VkValidationCacheEXT>(m_validationCache), &dataSize, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && dataSize)
{
data.resize(dataSize);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetValidationCacheDataEXT(
static_cast<VkDevice>(m_device), static_cast<VkValidationCacheEXT>(m_validationCache), &dataSize, reinterpret_cast<void *>(data.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::ValidationCacheEXT::getData");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(dataSize <= data.size());
if(dataSize < data.size())
{
data.resize(dataSize);
}
}
return data;
}
//=== VK_NV_shading_rate_image ===
VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBindShadingRateImageNV &&
"Function <vkCmdBindShadingRateImageNV> needs extension <VK_NV_shading_rate_image> enabled!");
getDispatcher()->vkCmdBindShadingRateImageNV(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkImageView>(imageView), static_cast<VkImageLayout>(imageLayout));
}
VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV(
uint32_t firstViewport, ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const &shadingRatePalettes) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetViewportShadingRatePaletteNV &&
"Function <vkCmdSetViewportShadingRatePaletteNV> needs extension <VK_NV_shading_rate_image> enabled!");
getDispatcher()->vkCmdSetViewportShadingRatePaletteNV(static_cast<VkCommandBuffer>(m_commandBuffer),
firstViewport,
shadingRatePalettes.size(),
reinterpret_cast<const VkShadingRatePaletteNV *>(shadingRatePalettes.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV(
VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,
ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const &customSampleOrders) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetCoarseSampleOrderNV &&
"Function <vkCmdSetCoarseSampleOrderNV> needs extension <VK_NV_shading_rate_image> enabled!");
getDispatcher()->vkCmdSetCoarseSampleOrderNV(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkCoarseSampleOrderTypeNV>(sampleOrderType),
customSampleOrders.size(),
reinterpret_cast<const VkCoarseSampleOrderCustomNV *>(customSampleOrders.data()));
}
//=== VK_NV_ray_tracing ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV
Device::createAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::AccelerationStructureNV(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV(
const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV &&
"Function <vkGetAccelerationStructureMemoryRequirementsNV> needs extension <VK_NV_ray_tracing> enabled!");
VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>(&info),
reinterpret_cast<VkMemoryRequirements2KHR *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...> Device::getAccelerationStructureMemoryRequirementsNV(
const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV &&
"Function <vkGetAccelerationStructureMemoryRequirementsNV> needs extension <VK_NV_ray_tracing> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
getDispatcher()->vkGetAccelerationStructureMemoryRequirementsNV(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>(&info),
reinterpret_cast<VkMemoryRequirements2KHR *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_INLINE void
Device::bindAccelerationStructureMemoryNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const &bindInfos) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkBindAccelerationStructureMemoryNV &&
"Function <vkBindAccelerationStructureMemoryNV> needs extension <VK_NV_ray_tracing> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkBindAccelerationStructureMemoryNV(
static_cast<VkDevice>(m_device), bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>(bindInfos.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV");
}
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBuildAccelerationStructureNV &&
"Function <vkCmdBuildAccelerationStructureNV> needs extension <VK_NV_ray_tracing> enabled!");
getDispatcher()->vkCmdBuildAccelerationStructureNV(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkAccelerationStructureInfoNV *>(&info),
static_cast<VkBuffer>(instanceData),
static_cast<VkDeviceSize>(instanceOffset),
static_cast<VkBool32>(update),
static_cast<VkAccelerationStructureNV>(dst),
static_cast<VkAccelerationStructureNV>(src),
static_cast<VkBuffer>(scratch),
static_cast<VkDeviceSize>(scratchOffset));
}
VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst,
VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,
VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCopyAccelerationStructureNV &&
"Function <vkCmdCopyAccelerationStructureNV> needs extension <VK_NV_ray_tracing> enabled!");
getDispatcher()->vkCmdCopyAccelerationStructureNV(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkAccelerationStructureNV>(dst),
static_cast<VkAccelerationStructureNV>(src),
static_cast<VkCopyAccelerationStructureModeKHR>(mode));
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdTraceRaysNV && "Function <vkCmdTraceRaysNV> needs extension <VK_NV_ray_tracing> enabled!");
getDispatcher()->vkCmdTraceRaysNV(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(raygenShaderBindingTableBuffer),
static_cast<VkDeviceSize>(raygenShaderBindingOffset),
static_cast<VkBuffer>(missShaderBindingTableBuffer),
static_cast<VkDeviceSize>(missShaderBindingOffset),
static_cast<VkDeviceSize>(missShaderBindingStride),
static_cast<VkBuffer>(hitShaderBindingTableBuffer),
static_cast<VkDeviceSize>(hitShaderBindingOffset),
static_cast<VkDeviceSize>(hitShaderBindingStride),
static_cast<VkBuffer>(callableShaderBindingTableBuffer),
static_cast<VkDeviceSize>(callableShaderBindingOffset),
static_cast<VkDeviceSize>(callableShaderBindingStride),
width,
height,
depth);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Pipelines(*this, pipelineCache, createInfos, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Pipeline Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Pipeline(*this, pipelineCache, createInfo, allocator);
}
template<typename DataType>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType>
Pipeline::getRayTracingShaderGroupHandlesNV(uint32_t firstGroup, uint32_t groupCount, size_t dataSize) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetRayTracingShaderGroupHandlesNV &&
"Function <vkGetRayTracingShaderGroupHandlesNV> needs extension <VK_NV_ray_tracing> enabled!");
VULKAN_HPP_ASSERT(dataSize % sizeof(DataType) == 0);
std::vector<DataType> data(dataSize / sizeof(DataType));
Result result = static_cast<Result>(getDispatcher()->vkGetRayTracingShaderGroupHandlesNV(static_cast<VkDevice>(m_device),
static_cast<VkPipeline>(m_pipeline),
firstGroup,
groupCount,
data.size() * sizeof(DataType),
reinterpret_cast<void *>(data.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesNV");
}
return data;
}
template<typename DataType>
VULKAN_HPP_NODISCARD DataType Pipeline::getRayTracingShaderGroupHandleNV(uint32_t firstGroup, uint32_t groupCount) const
{
DataType data;
Result result = static_cast<Result>(getDispatcher()->vkGetRayTracingShaderGroupHandlesNV(static_cast<VkDevice>(m_device),
static_cast<VkPipeline>(m_pipeline),
firstGroup,
groupCount,
sizeof(DataType),
reinterpret_cast<void *>(&data)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleNV");
}
return data;
}
template<typename DataType>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType> AccelerationStructureNV::getHandle(size_t dataSize) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetAccelerationStructureHandleNV &&
"Function <vkGetAccelerationStructureHandleNV> needs extension <VK_NV_ray_tracing> enabled!");
VULKAN_HPP_ASSERT(dataSize % sizeof(DataType) == 0);
std::vector<DataType> data(dataSize / sizeof(DataType));
Result result =
static_cast<Result>(getDispatcher()->vkGetAccelerationStructureHandleNV(static_cast<VkDevice>(m_device),
static_cast<VkAccelerationStructureNV>(m_accelerationStructure),
data.size() * sizeof(DataType),
reinterpret_cast<void *>(data.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle");
}
return data;
}
template<typename DataType>
VULKAN_HPP_NODISCARD DataType AccelerationStructureNV::getHandle() const
{
DataType data;
Result result =
static_cast<Result>(getDispatcher()->vkGetAccelerationStructureHandleNV(static_cast<VkDevice>(m_device),
static_cast<VkAccelerationStructureNV>(m_accelerationStructure),
sizeof(DataType),
reinterpret_cast<void *>(&data)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureNV::getHandle");
}
return data;
}
VULKAN_HPP_INLINE void
CommandBuffer::writeAccelerationStructuresPropertiesNV(ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const &accelerationStructures,
VULKAN_HPP_NAMESPACE::QueryType queryType,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t firstQuery) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV &&
"Function <vkCmdWriteAccelerationStructuresPropertiesNV> needs extension <VK_NV_ray_tracing> enabled!");
getDispatcher()->vkCmdWriteAccelerationStructuresPropertiesNV(static_cast<VkCommandBuffer>(m_commandBuffer),
accelerationStructures.size(),
reinterpret_cast<const VkAccelerationStructureNV *>(accelerationStructures.data()),
static_cast<VkQueryType>(queryType),
static_cast<VkQueryPool>(queryPool),
firstQuery);
}
VULKAN_HPP_INLINE void Pipeline::compileDeferredNV(uint32_t shader) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCompileDeferredNV && "Function <vkCompileDeferredNV> needs extension <VK_NV_ray_tracing> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkCompileDeferredNV(static_cast<VkDevice>(m_device), static_cast<VkPipeline>(m_pipeline), shader));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::compileDeferredNV");
}
}
//=== VK_KHR_maintenance3 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport
Device::getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo &createInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDescriptorSetLayoutSupportKHR &&
"Function <vkGetDescriptorSetLayoutSupportKHR> needs extension <VK_KHR_maintenance3> enabled!");
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
getDispatcher()->vkGetDescriptorSetLayoutSupportKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>(&createInfo),
reinterpret_cast<VkDescriptorSetLayoutSupport *>(&support));
return support;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo &createInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDescriptorSetLayoutSupportKHR &&
"Function <vkGetDescriptorSetLayoutSupportKHR> needs extension <VK_KHR_maintenance3> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport &support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
getDispatcher()->vkGetDescriptorSetLayoutSupportKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>(&createInfo),
reinterpret_cast<VkDescriptorSetLayoutSupport *>(&support));
return structureChain;
}
//=== VK_KHR_draw_indirect_count ===
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawIndirectCountKHR &&
"Function <vkCmdDrawIndirectCountKHR> needs extension <VK_KHR_draw_indirect_count> enabled!");
getDispatcher()->vkCmdDrawIndirectCountKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(buffer),
static_cast<VkDeviceSize>(offset),
static_cast<VkBuffer>(countBuffer),
static_cast<VkDeviceSize>(countBufferOffset),
maxDrawCount,
stride);
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawIndexedIndirectCountKHR &&
"Function <vkCmdDrawIndexedIndirectCountKHR> needs extension <VK_KHR_draw_indirect_count> enabled!");
getDispatcher()->vkCmdDrawIndexedIndirectCountKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(buffer),
static_cast<VkDeviceSize>(offset),
static_cast<VkBuffer>(countBuffer),
static_cast<VkDeviceSize>(countBufferOffset),
maxDrawCount,
stride);
}
//=== VK_EXT_external_memory_host ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT
Device::getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void *pHostPointer) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryHostPointerPropertiesEXT &&
"Function <vkGetMemoryHostPointerPropertiesEXT> needs extension <VK_EXT_external_memory_host> enabled!");
VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetMemoryHostPointerPropertiesEXT(static_cast<VkDevice>(m_device),
static_cast<VkExternalMemoryHandleTypeFlagBits>(handleType),
pHostPointer,
reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>(&memoryHostPointerProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT");
}
return memoryHostPointerProperties;
}
//=== VK_AMD_buffer_marker ===
VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
uint32_t marker) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdWriteBufferMarkerAMD && "Function <vkCmdWriteBufferMarkerAMD> needs extension <VK_AMD_buffer_marker> enabled!");
getDispatcher()->vkCmdWriteBufferMarkerAMD(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkPipelineStageFlagBits>(pipelineStage),
static_cast<VkBuffer>(dstBuffer),
static_cast<VkDeviceSize>(dstOffset),
marker);
}
//=== VK_EXT_calibrated_timestamps ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> PhysicalDevice::getCalibrateableTimeDomainsEXT() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT &&
"Function <vkGetPhysicalDeviceCalibrateableTimeDomainsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::TimeDomainEXT> timeDomains;
uint32_t timeDomainCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(static_cast<VkPhysicalDevice>(m_physicalDevice), &timeDomainCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && timeDomainCount)
{
timeDomains.resize(timeDomainCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
static_cast<VkPhysicalDevice>(m_physicalDevice), &timeDomainCount, reinterpret_cast<VkTimeDomainEXT *>(timeDomains.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(timeDomainCount <= timeDomains.size());
if(timeDomainCount < timeDomains.size())
{
timeDomains.resize(timeDomainCount);
}
}
return timeDomains;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<std::vector<uint64_t>, uint64_t>
Device::getCalibratedTimestampsEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT> const &timestampInfos) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetCalibratedTimestampsEXT &&
"Function <vkGetCalibratedTimestampsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!");
std::pair<std::vector<uint64_t>, uint64_t> data(std::piecewise_construct, std::forward_as_tuple(timestampInfos.size()), std::forward_as_tuple(0));
std::vector<uint64_t> &timestamps = data.first;
uint64_t &maxDeviation = data.second;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetCalibratedTimestampsEXT(static_cast<VkDevice>(m_device),
timestampInfos.size(),
reinterpret_cast<const VkCalibratedTimestampInfoEXT *>(timestampInfos.data()),
timestamps.data(),
&maxDeviation));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT");
}
return data;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<uint64_t, uint64_t>
Device::getCalibratedTimestampEXT(const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT &timestampInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetCalibratedTimestampsEXT &&
"Function <vkGetCalibratedTimestampsEXT> needs extension <VK_EXT_calibrated_timestamps> enabled!");
std::pair<uint64_t, uint64_t> data;
uint64_t &timestamp = data.first;
uint64_t &maxDeviation = data.second;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetCalibratedTimestampsEXT(
static_cast<VkDevice>(m_device), 1, reinterpret_cast<const VkCalibratedTimestampInfoEXT *>(&timestampInfo), &timestamp, &maxDeviation));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT");
}
return data;
}
//=== VK_NV_mesh_shader ===
VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV(uint32_t taskCount, uint32_t firstTask) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawMeshTasksNV && "Function <vkCmdDrawMeshTasksNV> needs extension <VK_NV_mesh_shader> enabled!");
getDispatcher()->vkCmdDrawMeshTasksNV(static_cast<VkCommandBuffer>(m_commandBuffer), taskCount, firstTask);
}
VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,
VULKAN_HPP_NAMESPACE::DeviceSize offset,
uint32_t drawCount,
uint32_t stride) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawMeshTasksIndirectNV &&
"Function <vkCmdDrawMeshTasksIndirectNV> needs extension <VK_NV_mesh_shader> enabled!");
getDispatcher()->vkCmdDrawMeshTasksIndirectNV(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBuffer>(buffer), static_cast<VkDeviceSize>(offset), drawCount, stride);
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV &&
"Function <vkCmdDrawMeshTasksIndirectCountNV> needs extension <VK_NV_mesh_shader> enabled!");
getDispatcher()->vkCmdDrawMeshTasksIndirectCountNV(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBuffer>(buffer),
static_cast<VkDeviceSize>(offset),
static_cast<VkBuffer>(countBuffer),
static_cast<VkDeviceSize>(countBufferOffset),
maxDrawCount,
stride);
}
//=== VK_NV_scissor_exclusive ===
VULKAN_HPP_INLINE void
CommandBuffer::setExclusiveScissorNV(uint32_t firstExclusiveScissor,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &exclusiveScissors) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetExclusiveScissorNV &&
"Function <vkCmdSetExclusiveScissorNV> needs extension <VK_NV_scissor_exclusive> enabled!");
getDispatcher()->vkCmdSetExclusiveScissorNV(static_cast<VkCommandBuffer>(m_commandBuffer),
firstExclusiveScissor,
exclusiveScissors.size(),
reinterpret_cast<const VkRect2D *>(exclusiveScissors.data()));
}
//=== VK_NV_device_diagnostic_checkpoints ===
template<typename CheckpointMarkerType>
VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV(CheckpointMarkerType const &checkpointMarker) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetCheckpointNV &&
"Function <vkCmdSetCheckpointNV> needs extension <VK_NV_device_diagnostic_checkpoints> enabled!");
getDispatcher()->vkCmdSetCheckpointNV(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const void *>(&checkpointMarker));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> Queue::getCheckpointDataNV() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetQueueCheckpointDataNV &&
"Function <vkGetQueueCheckpointDataNV> needs extension <VK_NV_device_diagnostic_checkpoints> enabled!");
uint32_t checkpointDataCount;
getDispatcher()->vkGetQueueCheckpointDataNV(static_cast<VkQueue>(m_queue), &checkpointDataCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV> checkpointData(checkpointDataCount);
getDispatcher()->vkGetQueueCheckpointDataNV(
static_cast<VkQueue>(m_queue), &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>(checkpointData.data()));
VULKAN_HPP_ASSERT(checkpointDataCount == checkpointData.size());
return checkpointData;
}
//=== VK_KHR_timeline_semaphore ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Semaphore::getCounterValueKHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetSemaphoreCounterValueKHR &&
"Function <vkGetSemaphoreCounterValueKHR> needs extension <VK_KHR_timeline_semaphore> enabled!");
uint64_t value;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetSemaphoreCounterValueKHR(static_cast<VkDevice>(m_device), static_cast<VkSemaphore>(m_semaphore), &value));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Semaphore::getCounterValueKHR");
}
return value;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo &waitInfo,
uint64_t timeout) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkWaitSemaphoresKHR && "Function <vkWaitSemaphoresKHR> needs extension <VK_KHR_timeline_semaphore> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkWaitSemaphoresKHR(static_cast<VkDevice>(m_device), reinterpret_cast<const VkSemaphoreWaitInfo *>(&waitInfo), timeout));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eTimeout))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR");
}
return result;
}
VULKAN_HPP_INLINE void Device::signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo &signalInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSignalSemaphoreKHR && "Function <vkSignalSemaphoreKHR> needs extension <VK_KHR_timeline_semaphore> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkSignalSemaphoreKHR(static_cast<VkDevice>(m_device), reinterpret_cast<const VkSemaphoreSignalInfo *>(&signalInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR");
}
}
//=== VK_INTEL_performance_query ===
VULKAN_HPP_INLINE void Device::initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL &initializeInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkInitializePerformanceApiINTEL &&
"Function <vkInitializePerformanceApiINTEL> needs extension <VK_INTEL_performance_query> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkInitializePerformanceApiINTEL(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>(&initializeInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL");
}
}
VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkUninitializePerformanceApiINTEL &&
"Function <vkUninitializePerformanceApiINTEL> needs extension <VK_INTEL_performance_query> enabled!");
getDispatcher()->vkUninitializePerformanceApiINTEL(static_cast<VkDevice>(m_device));
}
VULKAN_HPP_INLINE void CommandBuffer::setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL &markerInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetPerformanceMarkerINTEL &&
"Function <vkCmdSetPerformanceMarkerINTEL> needs extension <VK_INTEL_performance_query> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkCmdSetPerformanceMarkerINTEL(
static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>(&markerInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL");
}
}
VULKAN_HPP_INLINE void CommandBuffer::setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL &markerInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL &&
"Function <vkCmdSetPerformanceStreamMarkerINTEL> needs extension <VK_INTEL_performance_query> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkCmdSetPerformanceStreamMarkerINTEL(
static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>(&markerInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL");
}
}
VULKAN_HPP_INLINE void CommandBuffer::setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL &overrideInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetPerformanceOverrideINTEL &&
"Function <vkCmdSetPerformanceOverrideINTEL> needs extension <VK_INTEL_performance_query> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkCmdSetPerformanceOverrideINTEL(
static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>(&overrideInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL
Device::acquirePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const &acquireInfo) const
{
return VULKAN_HPP_RAII_NAMESPACE::PerformanceConfigurationINTEL(*this, acquireInfo);
}
VULKAN_HPP_INLINE void Queue::setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkQueueSetPerformanceConfigurationINTEL &&
"Function <vkQueueSetPerformanceConfigurationINTEL> needs extension <VK_INTEL_performance_query> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkQueueSetPerformanceConfigurationINTEL(
static_cast<VkQueue>(m_queue), static_cast<VkPerformanceConfigurationINTEL>(configuration)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PerformanceValueINTEL
Device::getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPerformanceParameterINTEL &&
"Function <vkGetPerformanceParameterINTEL> needs extension <VK_INTEL_performance_query> enabled!");
VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPerformanceParameterINTEL(
static_cast<VkDevice>(m_device), static_cast<VkPerformanceParameterTypeINTEL>(parameter), reinterpret_cast<VkPerformanceValueINTEL *>(&value)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL");
}
return value;
}
//=== VK_AMD_display_native_hdr ===
VULKAN_HPP_INLINE void SwapchainKHR::setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSetLocalDimmingAMD && "Function <vkSetLocalDimmingAMD> needs extension <VK_AMD_display_native_hdr> enabled!");
getDispatcher()->vkSetLocalDimmingAMD(
static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain), static_cast<VkBool32>(localDimmingEnable));
}
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_imagepipe_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createImagePipeSurfaceFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_METAL_EXT)
//=== VK_EXT_metal_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createMetalSurfaceEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
# endif /*VK_USE_PLATFORM_METAL_EXT*/
//=== VK_KHR_fragment_shading_rate ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR>
PhysicalDevice::getFragmentShadingRatesKHR() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR &&
"Function <vkGetPhysicalDeviceFragmentShadingRatesKHR> needs extension <VK_KHR_fragment_shading_rate> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR> fragmentShadingRates;
uint32_t fragmentShadingRateCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice), &fragmentShadingRateCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && fragmentShadingRateCount)
{
fragmentShadingRates.resize(fragmentShadingRateCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceFragmentShadingRatesKHR(
static_cast<VkPhysicalDevice>(m_physicalDevice),
&fragmentShadingRateCount,
reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>(fragmentShadingRates.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(fragmentShadingRateCount <= fragmentShadingRates.size());
if(fragmentShadingRateCount < fragmentShadingRates.size())
{
fragmentShadingRates.resize(fragmentShadingRateCount);
}
}
return fragmentShadingRates;
}
VULKAN_HPP_INLINE void
CommandBuffer::setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D &fragmentSize,
const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2]) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetFragmentShadingRateKHR &&
"Function <vkCmdSetFragmentShadingRateKHR> needs extension <VK_KHR_fragment_shading_rate> enabled!");
getDispatcher()->vkCmdSetFragmentShadingRateKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkExtent2D *>(&fragmentSize),
reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>(combinerOps));
}
//=== VK_EXT_buffer_device_address ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
Device::getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetBufferDeviceAddressEXT &&
"Function <vkGetBufferDeviceAddressEXT> needs extension <VK_EXT_buffer_device_address> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>(
getDispatcher()->vkGetBufferDeviceAddressEXT(static_cast<VkDevice>(m_device), reinterpret_cast<const VkBufferDeviceAddressInfo *>(&info)));
}
//=== VK_EXT_tooling_info ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> PhysicalDevice::getToolPropertiesEXT() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT &&
"Function <vkGetPhysicalDeviceToolPropertiesEXT> needs extension <VK_EXT_tooling_info> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties> toolProperties;
uint32_t toolCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT(static_cast<VkPhysicalDevice>(m_physicalDevice), &toolCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && toolCount)
{
toolProperties.resize(toolCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceToolPropertiesEXT(
static_cast<VkPhysicalDevice>(m_physicalDevice), &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>(toolProperties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(toolCount <= toolProperties.size());
if(toolCount < toolProperties.size())
{
toolProperties.resize(toolCount);
}
}
return toolProperties;
}
//=== VK_KHR_present_wait ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result SwapchainKHR::waitForPresent(uint64_t presentId, uint64_t timeout) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkWaitForPresentKHR && "Function <vkWaitForPresentKHR> needs extension <VK_KHR_present_wait> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkWaitForPresentKHR(static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain), presentId, timeout));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eTimeout) &&
(result != VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::waitForPresent");
}
return result;
}
//=== VK_NV_cooperative_matrix ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>
PhysicalDevice::getCooperativeMatrixPropertiesNV() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV &&
"Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesNV> needs extension <VK_NV_cooperative_matrix> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV> properties;
uint32_t propertyCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && propertyCount)
{
properties.resize(propertyCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
static_cast<VkPhysicalDevice>(m_physicalDevice), &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(propertyCount <= properties.size());
if(propertyCount < properties.size())
{
properties.resize(propertyCount);
}
}
return properties;
}
//=== VK_NV_coverage_reduction_mode ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>
PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV() const
{
VULKAN_HPP_ASSERT(
getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV &&
"Function <vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV> needs extension <VK_NV_coverage_reduction_mode> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV> combinations;
uint32_t combinationCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
static_cast<VkPhysicalDevice>(m_physicalDevice), &combinationCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && combinationCount)
{
combinations.resize(combinationCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
static_cast<VkPhysicalDevice>(m_physicalDevice),
&combinationCount,
reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>(combinations.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(combinationCount <= combinations.size());
if(combinationCount < combinations.size())
{
combinations.resize(combinationCount);
}
}
return combinations;
}
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_EXT_full_screen_exclusive ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR>
PhysicalDevice::getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT &&
"Function <vkGetPhysicalDeviceSurfacePresentModes2EXT> needs extension <VK_EXT_full_screen_exclusive> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR> presentModes;
uint32_t presentModeCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>(&surfaceInfo),
&presentModeCount,
nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && presentModeCount)
{
presentModes.resize(presentModeCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPhysicalDeviceSurfacePresentModes2EXT(static_cast<VkPhysicalDevice>(m_physicalDevice),
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>(&surfaceInfo),
&presentModeCount,
reinterpret_cast<VkPresentModeKHR *>(presentModes.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(presentModeCount <= presentModes.size());
if(presentModeCount < presentModes.size())
{
presentModes.resize(presentModeCount);
}
}
return presentModes;
}
VULKAN_HPP_INLINE void SwapchainKHR::acquireFullScreenExclusiveModeEXT() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkAcquireFullScreenExclusiveModeEXT &&
"Function <vkAcquireFullScreenExclusiveModeEXT> needs extension <VK_EXT_full_screen_exclusive> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkAcquireFullScreenExclusiveModeEXT(static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::acquireFullScreenExclusiveModeEXT");
}
}
VULKAN_HPP_INLINE void SwapchainKHR::releaseFullScreenExclusiveModeEXT() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkReleaseFullScreenExclusiveModeEXT &&
"Function <vkReleaseFullScreenExclusiveModeEXT> needs extension <VK_EXT_full_screen_exclusive> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkReleaseFullScreenExclusiveModeEXT(static_cast<VkDevice>(m_device), static_cast<VkSwapchainKHR>(m_swapchain)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::SwapchainKHR::releaseFullScreenExclusiveModeEXT");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR
Device::getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR &surfaceInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT &&
"Function <vkGetDeviceGroupSurfacePresentModes2EXT> needs extension <VK_EXT_full_screen_exclusive> enabled!");
VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetDeviceGroupSurfacePresentModes2EXT(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>(&surfaceInfo),
reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>(&modes)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT");
}
return modes;
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
//=== VK_EXT_headless_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createHeadlessSurfaceEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
//=== VK_KHR_buffer_device_address ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
Device::getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetBufferDeviceAddressKHR &&
"Function <vkGetBufferDeviceAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>(
getDispatcher()->vkGetBufferDeviceAddressKHR(static_cast<VkDevice>(m_device), reinterpret_cast<const VkBufferDeviceAddressInfo *>(&info)));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t
Device::getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetBufferOpaqueCaptureAddressKHR &&
"Function <vkGetBufferOpaqueCaptureAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!");
return getDispatcher()->vkGetBufferOpaqueCaptureAddressKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkBufferDeviceAddressInfo *>(&info));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t
Device::getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddressKHR &&
"Function <vkGetDeviceMemoryOpaqueCaptureAddressKHR> needs extension <VK_KHR_buffer_device_address> enabled!");
return getDispatcher()->vkGetDeviceMemoryOpaqueCaptureAddressKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>(&info));
}
//=== VK_EXT_line_rasterization ===
VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT(uint32_t lineStippleFactor, uint16_t lineStipplePattern) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetLineStippleEXT && "Function <vkCmdSetLineStippleEXT> needs extension <VK_EXT_line_rasterization> enabled!");
getDispatcher()->vkCmdSetLineStippleEXT(static_cast<VkCommandBuffer>(m_commandBuffer), lineStippleFactor, lineStipplePattern);
}
//=== VK_EXT_host_query_reset ===
VULKAN_HPP_INLINE void QueryPool::resetEXT(uint32_t firstQuery, uint32_t queryCount) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkResetQueryPoolEXT && "Function <vkResetQueryPoolEXT> needs extension <VK_EXT_host_query_reset> enabled!");
getDispatcher()->vkResetQueryPoolEXT(static_cast<VkDevice>(m_device), static_cast<VkQueryPool>(m_queryPool), firstQuery, queryCount);
}
//=== VK_EXT_extended_dynamic_state ===
VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetCullModeEXT && "Function <vkCmdSetCullModeEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetCullModeEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkCullModeFlags>(cullMode));
}
VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetFrontFaceEXT && "Function <vkCmdSetFrontFaceEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetFrontFaceEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkFrontFace>(frontFace));
}
VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetPrimitiveTopologyEXT &&
"Function <vkCmdSetPrimitiveTopologyEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetPrimitiveTopologyEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkPrimitiveTopology>(primitiveTopology));
}
VULKAN_HPP_INLINE void
CommandBuffer::setViewportWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const &viewports) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetViewportWithCountEXT &&
"Function <vkCmdSetViewportWithCountEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetViewportWithCountEXT(
static_cast<VkCommandBuffer>(m_commandBuffer), viewports.size(), reinterpret_cast<const VkViewport *>(viewports.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const &scissors) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetScissorWithCountEXT &&
"Function <vkCmdSetScissorWithCountEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetScissorWithCountEXT(
static_cast<VkCommandBuffer>(m_commandBuffer), scissors.size(), reinterpret_cast<const VkRect2D *>(scissors.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT(uint32_t firstBinding,
ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &buffers,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &offsets,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &sizes,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const &strides) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBindVertexBuffers2EXT &&
"Function <vkCmdBindVertexBuffers2EXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
if(buffers.size() != offsets.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()");
}
if(!sizes.empty() && buffers.size() != sizes.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()");
}
if(!strides.empty() && buffers.size() != strides.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()");
}
getDispatcher()->vkCmdBindVertexBuffers2EXT(static_cast<VkCommandBuffer>(m_commandBuffer),
firstBinding,
buffers.size(),
reinterpret_cast<const VkBuffer *>(buffers.data()),
reinterpret_cast<const VkDeviceSize *>(offsets.data()),
reinterpret_cast<const VkDeviceSize *>(sizes.data()),
reinterpret_cast<const VkDeviceSize *>(strides.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetDepthTestEnableEXT &&
"Function <vkCmdSetDepthTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetDepthTestEnableEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(depthTestEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetDepthWriteEnableEXT &&
"Function <vkCmdSetDepthWriteEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetDepthWriteEnableEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(depthWriteEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetDepthCompareOpEXT &&
"Function <vkCmdSetDepthCompareOpEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetDepthCompareOpEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkCompareOp>(depthCompareOp));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT &&
"Function <vkCmdSetDepthBoundsTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetDepthBoundsTestEnableEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(depthBoundsTestEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetStencilTestEnableEXT &&
"Function <vkCmdSetStencilTestEnableEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetStencilTestEnableEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(stencilTestEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetStencilOpEXT && "Function <vkCmdSetStencilOpEXT> needs extension <VK_EXT_extended_dynamic_state> enabled!");
getDispatcher()->vkCmdSetStencilOpEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkStencilFaceFlags>(faceMask),
static_cast<VkStencilOp>(failOp),
static_cast<VkStencilOp>(passOp),
static_cast<VkStencilOp>(depthFailOp),
static_cast<VkCompareOp>(compareOp));
}
//=== VK_KHR_deferred_host_operations ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR
Device::createDeferredOperationKHR(VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::DeferredOperationKHR(*this, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t DeferredOperationKHR::getMaxConcurrency() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR &&
"Function <vkGetDeferredOperationMaxConcurrencyKHR> needs extension <VK_KHR_deferred_host_operations> enabled!");
return getDispatcher()->vkGetDeferredOperationMaxConcurrencyKHR(static_cast<VkDevice>(m_device), static_cast<VkDeferredOperationKHR>(m_operation));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::getResult() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeferredOperationResultKHR &&
"Function <vkGetDeferredOperationResultKHR> needs extension <VK_KHR_deferred_host_operations> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetDeferredOperationResultKHR(static_cast<VkDevice>(m_device), static_cast<VkDeferredOperationKHR>(m_operation)));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result DeferredOperationKHR::join() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkDeferredOperationJoinKHR &&
"Function <vkDeferredOperationJoinKHR> needs extension <VK_KHR_deferred_host_operations> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkDeferredOperationJoinKHR(static_cast<VkDevice>(m_device), static_cast<VkDeferredOperationKHR>(m_operation)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR) &&
(result != VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::DeferredOperationKHR::join");
}
return result;
}
//=== VK_KHR_pipeline_executable_properties ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>
Device::getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR &pipelineInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPipelineExecutablePropertiesKHR &&
"Function <vkGetPipelineExecutablePropertiesKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR> properties;
uint32_t executableCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPipelineExecutablePropertiesKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkPipelineInfoKHR *>(&pipelineInfo), &executableCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && executableCount)
{
properties.resize(executableCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPipelineExecutablePropertiesKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkPipelineInfoKHR *>(&pipelineInfo),
&executableCount,
reinterpret_cast<VkPipelineExecutablePropertiesKHR *>(properties.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(executableCount <= properties.size());
if(executableCount < properties.size())
{
properties.resize(executableCount);
}
}
return properties;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR>
Device::getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR &executableInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPipelineExecutableStatisticsKHR &&
"Function <vkGetPipelineExecutableStatisticsKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR> statistics;
uint32_t statisticCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPipelineExecutableStatisticsKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkPipelineExecutableInfoKHR *>(&executableInfo), &statisticCount, nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && statisticCount)
{
statistics.resize(statisticCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPipelineExecutableStatisticsKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkPipelineExecutableInfoKHR *>(&executableInfo),
&statisticCount,
reinterpret_cast<VkPipelineExecutableStatisticKHR *>(statistics.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(statisticCount <= statistics.size());
if(statisticCount < statistics.size())
{
statistics.resize(statisticCount);
}
}
return statistics;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>
Device::getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR &executableInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR &&
"Function <vkGetPipelineExecutableInternalRepresentationsKHR> needs extension <VK_KHR_pipeline_executable_properties> enabled!");
std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR> internalRepresentations;
uint32_t internalRepresentationCount;
VULKAN_HPP_NAMESPACE::Result result;
do
{
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkPipelineExecutableInfoKHR *>(&executableInfo),
&internalRepresentationCount,
nullptr));
if((result == VULKAN_HPP_NAMESPACE::Result::eSuccess) && internalRepresentationCount)
{
internalRepresentations.resize(internalRepresentationCount);
result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetPipelineExecutableInternalRepresentationsKHR(
static_cast<VkDevice>(m_device),
reinterpret_cast<const VkPipelineExecutableInfoKHR *>(&executableInfo),
&internalRepresentationCount,
reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>(internalRepresentations.data())));
}
} while(result == VULKAN_HPP_NAMESPACE::Result::eIncomplete);
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR");
}
if(result == VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
VULKAN_HPP_ASSERT(internalRepresentationCount <= internalRepresentations.size());
if(internalRepresentationCount < internalRepresentations.size())
{
internalRepresentations.resize(internalRepresentationCount);
}
}
return internalRepresentations;
}
//=== VK_NV_device_generated_commands ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV &&
"Function <vkGetGeneratedCommandsMemoryRequirementsNV> needs extension <VK_NV_device_generated_commands> enabled!");
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV &&
"Function <vkGetGeneratedCommandsMemoryRequirementsNV> needs extension <VK_NV_device_generated_commands> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetGeneratedCommandsMemoryRequirementsNV(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_INLINE void
CommandBuffer::preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV &generatedCommandsInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdPreprocessGeneratedCommandsNV &&
"Function <vkCmdPreprocessGeneratedCommandsNV> needs extension <VK_NV_device_generated_commands> enabled!");
getDispatcher()->vkCmdPreprocessGeneratedCommandsNV(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkGeneratedCommandsInfoNV *>(&generatedCommandsInfo));
}
VULKAN_HPP_INLINE void
CommandBuffer::executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,
const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV &generatedCommandsInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdExecuteGeneratedCommandsNV &&
"Function <vkCmdExecuteGeneratedCommandsNV> needs extension <VK_NV_device_generated_commands> enabled!");
getDispatcher()->vkCmdExecuteGeneratedCommandsNV(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkBool32>(isPreprocessed),
reinterpret_cast<const VkGeneratedCommandsInfoNV *>(&generatedCommandsInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
VULKAN_HPP_NAMESPACE::Pipeline pipeline,
uint32_t groupIndex) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBindPipelineShaderGroupNV &&
"Function <vkCmdBindPipelineShaderGroupNV> needs extension <VK_NV_device_generated_commands> enabled!");
getDispatcher()->vkCmdBindPipelineShaderGroupNV(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkPipelineBindPoint>(pipelineBindPoint),
static_cast<VkPipeline>(pipeline),
groupIndex);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV
Device::createIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::IndirectCommandsLayoutNV(*this, createInfo, allocator);
}
//=== VK_EXT_acquire_drm_display ===
VULKAN_HPP_INLINE void PhysicalDevice::acquireDrmDisplayEXT(int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkAcquireDrmDisplayEXT && "Function <vkAcquireDrmDisplayEXT> needs extension <VK_EXT_acquire_drm_display> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkAcquireDrmDisplayEXT(static_cast<VkPhysicalDevice>(m_physicalDevice), drmFd, static_cast<VkDisplayKHR>(display)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR PhysicalDevice::getDrmDisplayEXT(int32_t drmFd, uint32_t connectorId) const
{
return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR(*this, drmFd, connectorId);
}
//=== VK_EXT_private_data ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot
Device::createPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::PrivateDataSlot(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkDestroyPrivateDataSlotEXT &&
"Function <vkDestroyPrivateDataSlotEXT> needs extension <VK_EXT_private_data> enabled!");
getDispatcher()->vkDestroyPrivateDataSlotEXT(
static_cast<VkDevice>(m_device),
static_cast<VkPrivateDataSlot>(privateDataSlot),
reinterpret_cast<const VkAllocationCallbacks *>(static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>(allocator)));
}
VULKAN_HPP_INLINE void Device::setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,
uint64_t objectHandle,
VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
uint64_t data) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSetPrivateDataEXT && "Function <vkSetPrivateDataEXT> needs extension <VK_EXT_private_data> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkSetPrivateDataEXT(
static_cast<VkDevice>(m_device), static_cast<VkObjectType>(objectType_), objectHandle, static_cast<VkPrivateDataSlot>(privateDataSlot), data));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,
uint64_t objectHandle,
VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPrivateDataEXT && "Function <vkGetPrivateDataEXT> needs extension <VK_EXT_private_data> enabled!");
uint64_t data;
getDispatcher()->vkGetPrivateDataEXT(
static_cast<VkDevice>(m_device), static_cast<VkObjectType>(objectType_), objectHandle, static_cast<VkPrivateDataSlot>(privateDataSlot), &data);
return data;
}
# if defined(VK_ENABLE_BETA_EXTENSIONS)
//=== VK_KHR_video_encode_queue ===
VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR &encodeInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdEncodeVideoKHR && "Function <vkCmdEncodeVideoKHR> needs extension <VK_KHR_video_encode_queue> enabled!");
getDispatcher()->vkCmdEncodeVideoKHR(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkVideoEncodeInfoKHR *>(&encodeInfo));
}
# endif /*VK_ENABLE_BETA_EXTENSIONS*/
//=== VK_KHR_synchronization2 ===
VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,
const VULKAN_HPP_NAMESPACE::DependencyInfo &dependencyInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetEvent2KHR && "Function <vkCmdSetEvent2KHR> needs extension <VK_KHR_synchronization2> enabled!");
getDispatcher()->vkCmdSetEvent2KHR(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkEvent>(event), reinterpret_cast<const VkDependencyInfo *>(&dependencyInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::resetEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,
VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdResetEvent2KHR && "Function <vkCmdResetEvent2KHR> needs extension <VK_KHR_synchronization2> enabled!");
getDispatcher()->vkCmdResetEvent2KHR(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkEvent>(event), static_cast<VkPipelineStageFlags2>(stageMask));
}
VULKAN_HPP_INLINE void CommandBuffer::waitEvents2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &events,
ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const &dependencyInfos) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdWaitEvents2KHR && "Function <vkCmdWaitEvents2KHR> needs extension <VK_KHR_synchronization2> enabled!");
if(events.size() != dependencyInfos.size())
{
throw LogicError(VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()");
}
getDispatcher()->vkCmdWaitEvents2KHR(static_cast<VkCommandBuffer>(m_commandBuffer),
events.size(),
reinterpret_cast<const VkEvent *>(events.data()),
reinterpret_cast<const VkDependencyInfo *>(dependencyInfos.data()));
}
VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR(const VULKAN_HPP_NAMESPACE::DependencyInfo &dependencyInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdPipelineBarrier2KHR &&
"Function <vkCmdPipelineBarrier2KHR> needs extension <VK_KHR_synchronization2> enabled!");
getDispatcher()->vkCmdPipelineBarrier2KHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkDependencyInfo *>(&dependencyInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
VULKAN_HPP_NAMESPACE::QueryPool queryPool,
uint32_t query) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdWriteTimestamp2KHR && "Function <vkCmdWriteTimestamp2KHR> needs extension <VK_KHR_synchronization2> enabled!");
getDispatcher()->vkCmdWriteTimestamp2KHR(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkPipelineStageFlags2>(stage), static_cast<VkQueryPool>(queryPool), query);
}
VULKAN_HPP_INLINE void Queue::submit2KHR(ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const &submits, VULKAN_HPP_NAMESPACE::Fence fence) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkQueueSubmit2KHR && "Function <vkQueueSubmit2KHR> needs extension <VK_KHR_synchronization2> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkQueueSubmit2KHR(
static_cast<VkQueue>(m_queue), submits.size(), reinterpret_cast<const VkSubmitInfo2 *>(submits.data()), static_cast<VkFence>(fence)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR");
}
}
VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
VULKAN_HPP_NAMESPACE::Buffer dstBuffer,
VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
uint32_t marker) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdWriteBufferMarker2AMD &&
"Function <vkCmdWriteBufferMarker2AMD> needs extension <VK_KHR_synchronization2> enabled!");
getDispatcher()->vkCmdWriteBufferMarker2AMD(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkPipelineStageFlags2>(stage),
static_cast<VkBuffer>(dstBuffer),
static_cast<VkDeviceSize>(dstOffset),
marker);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> Queue::getCheckpointData2NV() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetQueueCheckpointData2NV &&
"Function <vkGetQueueCheckpointData2NV> needs extension <VK_KHR_synchronization2> enabled!");
uint32_t checkpointDataCount;
getDispatcher()->vkGetQueueCheckpointData2NV(static_cast<VkQueue>(m_queue), &checkpointDataCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV> checkpointData(checkpointDataCount);
getDispatcher()->vkGetQueueCheckpointData2NV(
static_cast<VkQueue>(m_queue), &checkpointDataCount, reinterpret_cast<VkCheckpointData2NV *>(checkpointData.data()));
VULKAN_HPP_ASSERT(checkpointDataCount == checkpointData.size());
return checkpointData;
}
//=== VK_NV_fragment_shading_rate_enums ===
VULKAN_HPP_INLINE void
CommandBuffer::setFragmentShadingRateEnumNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate,
const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2]) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetFragmentShadingRateEnumNV &&
"Function <vkCmdSetFragmentShadingRateEnumNV> needs extension <VK_NV_fragment_shading_rate_enums> enabled!");
getDispatcher()->vkCmdSetFragmentShadingRateEnumNV(static_cast<VkCommandBuffer>(m_commandBuffer),
static_cast<VkFragmentShadingRateNV>(shadingRate),
reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>(combinerOps));
}
//=== VK_KHR_copy_commands2 ===
VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 &copyBufferInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCopyBuffer2KHR && "Function <vkCmdCopyBuffer2KHR> needs extension <VK_KHR_copy_commands2> enabled!");
getDispatcher()->vkCmdCopyBuffer2KHR(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkCopyBufferInfo2 *>(&copyBufferInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 &copyImageInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCopyImage2KHR && "Function <vkCmdCopyImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!");
getDispatcher()->vkCmdCopyImage2KHR(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkCopyImageInfo2 *>(&copyImageInfo));
}
VULKAN_HPP_INLINE void
CommandBuffer::copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 &copyBufferToImageInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCopyBufferToImage2KHR &&
"Function <vkCmdCopyBufferToImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!");
getDispatcher()->vkCmdCopyBufferToImage2KHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkCopyBufferToImageInfo2 *>(&copyBufferToImageInfo));
}
VULKAN_HPP_INLINE void
CommandBuffer::copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 &copyImageToBufferInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdCopyImageToBuffer2KHR &&
"Function <vkCmdCopyImageToBuffer2KHR> needs extension <VK_KHR_copy_commands2> enabled!");
getDispatcher()->vkCmdCopyImageToBuffer2KHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkCopyImageToBufferInfo2 *>(&copyImageToBufferInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 &blitImageInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBlitImage2KHR && "Function <vkCmdBlitImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!");
getDispatcher()->vkCmdBlitImage2KHR(static_cast<VkCommandBuffer>(m_commandBuffer), reinterpret_cast<const VkBlitImageInfo2 *>(&blitImageInfo));
}
VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 &resolveImageInfo) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdResolveImage2KHR && "Function <vkCmdResolveImage2KHR> needs extension <VK_KHR_copy_commands2> enabled!");
getDispatcher()->vkCmdResolveImage2KHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkResolveImageInfo2 *>(&resolveImageInfo));
}
# if defined(VK_USE_PLATFORM_WIN32_KHR)
//=== VK_NV_acquire_winrt_display ===
VULKAN_HPP_INLINE void DisplayKHR::acquireWinrtNV() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkAcquireWinrtDisplayNV &&
"Function <vkAcquireWinrtDisplayNV> needs extension <VK_NV_acquire_winrt_display> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkAcquireWinrtDisplayNV(static_cast<VkPhysicalDevice>(m_physicalDevice), static_cast<VkDisplayKHR>(m_display)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::DisplayKHR::acquireWinrtNV");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DisplayKHR PhysicalDevice::getWinrtDisplayNV(uint32_t deviceRelativeId) const
{
return VULKAN_HPP_RAII_NAMESPACE::DisplayKHR(*this, deviceRelativeId);
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
//=== VK_EXT_directfb_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createDirectFBSurfaceEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
PhysicalDevice::getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex, IDirectFB &dfb) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT &&
"Function <vkGetPhysicalDeviceDirectFBPresentationSupportEXT> needs extension <VK_EXT_directfb_surface> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::Bool32>(
getDispatcher()->vkGetPhysicalDeviceDirectFBPresentationSupportEXT(static_cast<VkPhysicalDevice>(m_physicalDevice), queueFamilyIndex, &dfb));
}
# endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
//=== VK_KHR_ray_tracing_pipeline ===
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdTraceRaysKHR && "Function <vkCmdTraceRaysKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!");
getDispatcher()->vkCmdTraceRaysKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>(&raygenShaderBindingTable),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>(&missShaderBindingTable),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>(&hitShaderBindingTable),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>(&callableShaderBindingTable),
width,
height,
depth);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_RAII_NAMESPACE::Pipeline> Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Pipelines(*this, deferredOperation, pipelineCache, createInfos, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::Pipeline Device::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) const
{
return VULKAN_HPP_RAII_NAMESPACE::Pipeline(*this, deferredOperation, pipelineCache, createInfo, allocator);
}
template<typename DataType>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType>
Pipeline::getRayTracingShaderGroupHandlesKHR(uint32_t firstGroup, uint32_t groupCount, size_t dataSize) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR &&
"Function <vkGetRayTracingShaderGroupHandlesKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!");
VULKAN_HPP_ASSERT(dataSize % sizeof(DataType) == 0);
std::vector<DataType> data(dataSize / sizeof(DataType));
Result result = static_cast<Result>(getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR(static_cast<VkDevice>(m_device),
static_cast<VkPipeline>(m_pipeline),
firstGroup,
groupCount,
data.size() * sizeof(DataType),
reinterpret_cast<void *>(data.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandlesKHR");
}
return data;
}
template<typename DataType>
VULKAN_HPP_NODISCARD DataType Pipeline::getRayTracingShaderGroupHandleKHR(uint32_t firstGroup, uint32_t groupCount) const
{
DataType data;
Result result = static_cast<Result>(getDispatcher()->vkGetRayTracingShaderGroupHandlesKHR(static_cast<VkDevice>(m_device),
static_cast<VkPipeline>(m_pipeline),
firstGroup,
groupCount,
sizeof(DataType),
reinterpret_cast<void *>(&data)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingShaderGroupHandleKHR");
}
return data;
}
template<typename DataType>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<DataType>
Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR(uint32_t firstGroup, uint32_t groupCount, size_t dataSize) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR &&
"Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!");
VULKAN_HPP_ASSERT(dataSize % sizeof(DataType) == 0);
std::vector<DataType> data(dataSize / sizeof(DataType));
Result result = static_cast<Result>(getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(static_cast<VkDevice>(m_device),
static_cast<VkPipeline>(m_pipeline),
firstGroup,
groupCount,
data.size() * sizeof(DataType),
reinterpret_cast<void *>(data.data())));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandlesKHR");
}
return data;
}
template<typename DataType>
VULKAN_HPP_NODISCARD DataType Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR(uint32_t firstGroup, uint32_t groupCount) const
{
DataType data;
Result result = static_cast<Result>(getDispatcher()->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(static_cast<VkDevice>(m_device),
static_cast<VkPipeline>(m_pipeline),
firstGroup,
groupCount,
sizeof(DataType),
reinterpret_cast<void *>(&data)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Pipeline::getRayTracingCaptureReplayShaderGroupHandleKHR");
}
return data;
}
VULKAN_HPP_INLINE void CommandBuffer::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) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdTraceRaysIndirectKHR &&
"Function <vkCmdTraceRaysIndirectKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!");
getDispatcher()->vkCmdTraceRaysIndirectKHR(static_cast<VkCommandBuffer>(m_commandBuffer),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>(&raygenShaderBindingTable),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>(&missShaderBindingTable),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>(&hitShaderBindingTable),
reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>(&callableShaderBindingTable),
static_cast<VkDeviceAddress>(indirectDeviceAddress));
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize
Pipeline::getRayTracingShaderGroupStackSizeKHR(uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR &&
"Function <vkGetRayTracingShaderGroupStackSizeKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::DeviceSize>(getDispatcher()->vkGetRayTracingShaderGroupStackSizeKHR(
static_cast<VkDevice>(m_device), static_cast<VkPipeline>(m_pipeline), group, static_cast<VkShaderGroupShaderKHR>(groupShader)));
}
VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR(uint32_t pipelineStackSize) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR &&
"Function <vkCmdSetRayTracingPipelineStackSizeKHR> needs extension <VK_KHR_ray_tracing_pipeline> enabled!");
getDispatcher()->vkCmdSetRayTracingPipelineStackSizeKHR(static_cast<VkCommandBuffer>(m_commandBuffer), pipelineStackSize);
}
//=== VK_EXT_vertex_input_dynamic_state ===
VULKAN_HPP_INLINE void CommandBuffer::setVertexInputEXT(
ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const &vertexBindingDescriptions,
ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const &vertexAttributeDescriptions) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetVertexInputEXT &&
"Function <vkCmdSetVertexInputEXT> needs extension <VK_EXT_vertex_input_dynamic_state> enabled!");
getDispatcher()->vkCmdSetVertexInputEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
vertexBindingDescriptions.size(),
reinterpret_cast<const VkVertexInputBindingDescription2EXT *>(vertexBindingDescriptions.data()),
vertexAttributeDescriptions.size(),
reinterpret_cast<const VkVertexInputAttributeDescription2EXT *>(vertexAttributeDescriptions.data()));
}
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_external_memory ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t
Device::getMemoryZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA &getZirconHandleInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryZirconHandleFUCHSIA &&
"Function <vkGetMemoryZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_memory> enabled!");
zx_handle_t zirconHandle;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetMemoryZirconHandleFUCHSIA(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>(&getZirconHandleInfo), &zirconHandle));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA");
}
return zirconHandle;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA
Device::getMemoryZirconHandlePropertiesFUCHSIA(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, zx_handle_t zirconHandle) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA &&
"Function <vkGetMemoryZirconHandlePropertiesFUCHSIA> needs extension <VK_FUCHSIA_external_memory> enabled!");
VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetMemoryZirconHandlePropertiesFUCHSIA(
static_cast<VkDevice>(m_device),
static_cast<VkExternalMemoryHandleTypeFlagBits>(handleType),
zirconHandle,
reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>(&memoryZirconHandleProperties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA");
}
return memoryZirconHandleProperties;
}
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_external_semaphore ===
VULKAN_HPP_INLINE void
Device::importSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA &importSemaphoreZirconHandleInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA &&
"Function <vkImportSemaphoreZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_semaphore> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkImportSemaphoreZirconHandleFUCHSIA(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>(&importSemaphoreZirconHandleInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE zx_handle_t
Device::getSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA &getZirconHandleInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA &&
"Function <vkGetSemaphoreZirconHandleFUCHSIA> needs extension <VK_FUCHSIA_external_semaphore> enabled!");
zx_handle_t zirconHandle;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetSemaphoreZirconHandleFUCHSIA(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>(&getZirconHandleInfo), &zirconHandle));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA");
}
return zirconHandle;
}
# endif /*VK_USE_PLATFORM_FUCHSIA*/
# if defined(VK_USE_PLATFORM_FUCHSIA)
//=== VK_FUCHSIA_buffer_collection ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA
Device::createBufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::BufferCollectionFUCHSIA(*this, createInfo, allocator);
}
VULKAN_HPP_INLINE void BufferCollectionFUCHSIA::setImageConstraints(const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA &imageConstraintsInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA &&
"Function <vkSetBufferCollectionImageConstraintsFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkSetBufferCollectionImageConstraintsFUCHSIA(static_cast<VkDevice>(m_device),
static_cast<VkBufferCollectionFUCHSIA>(m_collection),
reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>(&imageConstraintsInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setImageConstraints");
}
}
VULKAN_HPP_INLINE void
BufferCollectionFUCHSIA::setBufferConstraints(const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA &bufferConstraintsInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA &&
"Function <vkSetBufferCollectionBufferConstraintsFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!");
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkSetBufferCollectionBufferConstraintsFUCHSIA(static_cast<VkDevice>(m_device),
static_cast<VkBufferCollectionFUCHSIA>(m_collection),
reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>(&bufferConstraintsInfo)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::setBufferConstraints");
}
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA BufferCollectionFUCHSIA::getProperties() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA &&
"Function <vkGetBufferCollectionPropertiesFUCHSIA> needs extension <VK_FUCHSIA_buffer_collection> enabled!");
VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA properties;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetBufferCollectionPropertiesFUCHSIA(static_cast<VkDevice>(m_device),
static_cast<VkBufferCollectionFUCHSIA>(m_collection),
reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>(&properties)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::BufferCollectionFUCHSIA::getProperties");
}
return properties;
}
# endif /*VK_USE_PLATFORM_FUCHSIA*/
//=== VK_HUAWEI_subpass_shading ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::pair<VULKAN_HPP_NAMESPACE::Result, VULKAN_HPP_NAMESPACE::Extent2D>
RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI() const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI &&
"Function <vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI> needs extension <VK_HUAWEI_subpass_shading> enabled!");
VULKAN_HPP_NAMESPACE::Extent2D maxWorkgroupSize;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(getDispatcher()->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
static_cast<VkDevice>(m_device), static_cast<VkRenderPass>(m_renderPass), reinterpret_cast<VkExtent2D *>(&maxWorkgroupSize)));
if((result != VULKAN_HPP_NAMESPACE::Result::eSuccess) && (result != VULKAN_HPP_NAMESPACE::Result::eIncomplete))
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::RenderPass::getSubpassShadingMaxWorkgroupSizeHUAWEI");
}
return std::make_pair(result, maxWorkgroupSize);
}
VULKAN_HPP_INLINE void CommandBuffer::subpassShadingHUAWEI() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSubpassShadingHUAWEI &&
"Function <vkCmdSubpassShadingHUAWEI> needs extension <VK_HUAWEI_subpass_shading> enabled!");
getDispatcher()->vkCmdSubpassShadingHUAWEI(static_cast<VkCommandBuffer>(m_commandBuffer));
}
//=== VK_HUAWEI_invocation_mask ===
VULKAN_HPP_INLINE void CommandBuffer::bindInvocationMaskHUAWEI(VULKAN_HPP_NAMESPACE::ImageView imageView,
VULKAN_HPP_NAMESPACE::ImageLayout imageLayout) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdBindInvocationMaskHUAWEI &&
"Function <vkCmdBindInvocationMaskHUAWEI> needs extension <VK_HUAWEI_invocation_mask> enabled!");
getDispatcher()->vkCmdBindInvocationMaskHUAWEI(
static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkImageView>(imageView), static_cast<VkImageLayout>(imageLayout));
}
//=== VK_NV_external_memory_rdma ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::RemoteAddressNV
Device::getMemoryRemoteAddressNV(const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV &memoryGetRemoteAddressInfo) const
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetMemoryRemoteAddressNV &&
"Function <vkGetMemoryRemoteAddressNV> needs extension <VK_NV_external_memory_rdma> enabled!");
VULKAN_HPP_NAMESPACE::RemoteAddressNV address;
VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
getDispatcher()->vkGetMemoryRemoteAddressNV(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>(&memoryGetRemoteAddressInfo),
reinterpret_cast<VkRemoteAddressNV *>(&address)));
if(result != VULKAN_HPP_NAMESPACE::Result::eSuccess)
{
throwResultException(result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV");
}
return address;
}
//=== VK_EXT_extended_dynamic_state2 ===
VULKAN_HPP_INLINE void CommandBuffer::setPatchControlPointsEXT(uint32_t patchControlPoints) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetPatchControlPointsEXT &&
"Function <vkCmdSetPatchControlPointsEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!");
getDispatcher()->vkCmdSetPatchControlPointsEXT(static_cast<VkCommandBuffer>(m_commandBuffer), patchControlPoints);
}
VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT &&
"Function <vkCmdSetRasterizerDiscardEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!");
getDispatcher()->vkCmdSetRasterizerDiscardEnableEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(rasterizerDiscardEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetDepthBiasEnableEXT &&
"Function <vkCmdSetDepthBiasEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!");
getDispatcher()->vkCmdSetDepthBiasEnableEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(depthBiasEnable));
}
VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEXT(VULKAN_HPP_NAMESPACE::LogicOp logicOp) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetLogicOpEXT && "Function <vkCmdSetLogicOpEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!");
getDispatcher()->vkCmdSetLogicOpEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkLogicOp>(logicOp));
}
VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT &&
"Function <vkCmdSetPrimitiveRestartEnableEXT> needs extension <VK_EXT_extended_dynamic_state2> enabled!");
getDispatcher()->vkCmdSetPrimitiveRestartEnableEXT(static_cast<VkCommandBuffer>(m_commandBuffer), static_cast<VkBool32>(primitiveRestartEnable));
}
# if defined(VK_USE_PLATFORM_SCREEN_QNX)
//=== VK_QNX_screen_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR
Instance::createScreenSurfaceQNX(VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const &createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR(*this, createInfo, allocator);
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
PhysicalDevice::getScreenPresentationSupportQNX(uint32_t queueFamilyIndex, struct _screen_window &window) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX &&
"Function <vkGetPhysicalDeviceScreenPresentationSupportQNX> needs extension <VK_QNX_screen_surface> enabled!");
return static_cast<VULKAN_HPP_NAMESPACE::Bool32>(
getDispatcher()->vkGetPhysicalDeviceScreenPresentationSupportQNX(static_cast<VkPhysicalDevice>(m_physicalDevice), queueFamilyIndex, &window));
}
# endif /*VK_USE_PLATFORM_SCREEN_QNX*/
//=== VK_EXT_color_write_enable ===
VULKAN_HPP_INLINE void
CommandBuffer::setColorWriteEnableEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const &colorWriteEnables) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdSetColorWriteEnableEXT &&
"Function <vkCmdSetColorWriteEnableEXT> needs extension <VK_EXT_color_write_enable> enabled!");
getDispatcher()->vkCmdSetColorWriteEnableEXT(
static_cast<VkCommandBuffer>(m_commandBuffer), colorWriteEnables.size(), reinterpret_cast<const VkBool32 *>(colorWriteEnables.data()));
}
//=== VK_EXT_multi_draw ===
VULKAN_HPP_INLINE void CommandBuffer::drawMultiEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const &vertexInfo,
uint32_t instanceCount,
uint32_t firstInstance,
uint32_t stride) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawMultiEXT && "Function <vkCmdDrawMultiEXT> needs extension <VK_EXT_multi_draw> enabled!");
getDispatcher()->vkCmdDrawMultiEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
vertexInfo.size(),
reinterpret_cast<const VkMultiDrawInfoEXT *>(vertexInfo.data()),
instanceCount,
firstInstance,
stride);
}
VULKAN_HPP_INLINE void CommandBuffer::drawMultiIndexedEXT(ArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const &indexInfo,
uint32_t instanceCount,
uint32_t firstInstance,
uint32_t stride,
Optional<const int32_t> vertexOffset) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkCmdDrawMultiIndexedEXT && "Function <vkCmdDrawMultiIndexedEXT> needs extension <VK_EXT_multi_draw> enabled!");
getDispatcher()->vkCmdDrawMultiIndexedEXT(static_cast<VkCommandBuffer>(m_commandBuffer),
indexInfo.size(),
reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(indexInfo.data()),
instanceCount,
firstInstance,
stride,
static_cast<const int32_t *>(vertexOffset));
}
//=== VK_EXT_pageable_device_local_memory ===
VULKAN_HPP_INLINE void DeviceMemory::setPriorityEXT(float priority) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkSetDeviceMemoryPriorityEXT &&
"Function <vkSetDeviceMemoryPriorityEXT> needs extension <VK_EXT_pageable_device_local_memory> enabled!");
getDispatcher()->vkSetDeviceMemoryPriorityEXT(static_cast<VkDevice>(m_device), static_cast<VkDeviceMemory>(m_memory), priority);
}
//=== VK_KHR_maintenance4 ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR &&
"Function <vkGetDeviceBufferMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!");
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceBufferMemoryRequirements *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR &&
"Function <vkGetDeviceBufferMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetDeviceBufferMemoryRequirementsKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceBufferMemoryRequirements *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
Device::getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR &&
"Function <vkGetDeviceImageMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!");
VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceImageMemoryRequirements *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return memoryRequirements;
}
template<typename X, typename Y, typename... Z>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain<X, Y, Z...>
Device::getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR &&
"Function <vkGetDeviceImageMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!");
StructureChain<X, Y, Z...> structureChain;
VULKAN_HPP_NAMESPACE::MemoryRequirements2 &memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
getDispatcher()->vkGetDeviceImageMemoryRequirementsKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceImageMemoryRequirements *>(&info),
reinterpret_cast<VkMemoryRequirements2 *>(&memoryRequirements));
return structureChain;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
Device::getImageSparseMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements &info) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR &&
"Function <vkGetDeviceImageSparseMemoryRequirementsKHR> needs extension <VK_KHR_maintenance4> enabled!");
uint32_t sparseMemoryRequirementCount;
getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR(
static_cast<VkDevice>(m_device), reinterpret_cast<const VkDeviceImageMemoryRequirements *>(&info), &sparseMemoryRequirementCount, nullptr);
std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2> sparseMemoryRequirements(sparseMemoryRequirementCount);
getDispatcher()->vkGetDeviceImageSparseMemoryRequirementsKHR(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDeviceImageMemoryRequirements *>(&info),
&sparseMemoryRequirementCount,
reinterpret_cast<VkSparseImageMemoryRequirements2 *>(sparseMemoryRequirements.data()));
VULKAN_HPP_ASSERT(sparseMemoryRequirementCount == sparseMemoryRequirements.size());
return sparseMemoryRequirements;
}
//=== VK_VALVE_descriptor_set_host_mapping ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE Device::getDescriptorSetLayoutHostMappingInfoVALVE(
const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE &bindingReference) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDescriptorSetLayoutHostMappingInfoVALVE &&
"Function <vkGetDescriptorSetLayoutHostMappingInfoVALVE> needs extension <VK_VALVE_descriptor_set_host_mapping> enabled!");
VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE hostMapping;
getDispatcher()->vkGetDescriptorSetLayoutHostMappingInfoVALVE(static_cast<VkDevice>(m_device),
reinterpret_cast<const VkDescriptorSetBindingReferenceVALVE *>(&bindingReference),
reinterpret_cast<VkDescriptorSetLayoutHostMappingInfoVALVE *>(&hostMapping));
return hostMapping;
}
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void *DescriptorSet::getHostMappingVALVE() const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT(getDispatcher()->vkGetDescriptorSetHostMappingVALVE &&
"Function <vkGetDescriptorSetHostMappingVALVE> needs extension <VK_VALVE_descriptor_set_host_mapping> enabled!");
void *pData;
getDispatcher()->vkGetDescriptorSetHostMappingVALVE(static_cast<VkDevice>(m_device), static_cast<VkDescriptorSet>(m_descriptorSet), &pData);
return pData;
}
#endif
} // namespace VULKAN_HPP_RAII_NAMESPACE
} // namespace VULKAN_HPP_NAMESPACE
#endif